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
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)
Remove the last comma:
setProdutos(produtos.replace(/,(?=\s*$)/, ''))
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)