let produtos = [...Produtos, data]
produtos= produtos.sort((a,b) => a.numero_volume - b.numero_volume)
setFiltro('')
var volume = data.volumes
var list = [];
for (var i = 1; i <= volume; i ) {
const p = produtos.find(p => p.numero_volume == i)
if(!p) {
list.push(`${i},`);
}
setLista(list)
}
setProdutos(produtos)
What returns me from this is
I need to remove the comma from the last string, remembering that the final number can be another, but it will always be the last number in ascending order
CodePudding user response:
write the comma before the number
let produtos = [...Produtos, data]
produtos= produtos.sort((a,b) => a.numero_volume - b.numero_volume)
setFiltro('')
var volume = data.volumes
var list = [];
for (var i = 1; i <= volume; i ) {
const p = produtos.find(p => p.numero_volume == i)
if(!p) {
if(list.length === 0) list.push(`${i}`);
else list.push(`,${i}`)
}
setLista(list)
}
setProdutos(produtos)
CodePudding user response:
remove the last comma
setProdutos(produtos.replace(/,(?=\s*$)/, ''))
CodePudding user response:
Para lo que vale, creo es mejor solo acumular las entradas q faltan en una lista y indica la lista con sintaxis en traduccion al tipo string, como dijo pilchard.
let produtos = [...Produtos, data]
.sort((a,b) => a.numero_volume - b.numero_volume)
const list = produtos
.filter(p => Number(p.numero_volume) > 0 && Number(p.numero_volume) <= data.volumes)
const comatador = (p,i) => `${p.numero_volume}${i < list.length - 1 ? ',': ''}`
setFiltro('')
setLista(list.map(comatador))
setProdutos(produtos)
CodePudding user response:
just use join
instead of add a comma on every elements
like this
let produtos = [...Produtos, data]
produtos = produtos.sort((a, b) => a.numero_volume - b.numero_volume)
setFiltro('')
var volume = data.volumes
var list = [];
for (var i = 1; i <= volume; i ) {
const p = produtos.find(p => p.numero_volume == i)
if (!p) {
list.push(i);
}
setLista(list.join(', '))
}
setProdutos(produtos)