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)Lo que me devuelve de esto es
Necesito quitar la coma de la última cadena, recordando que el número final puede ser otro, pero siempre será el último número en orden ascendente
escribe la coma antes del numero
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)Elimina la última coma:
setProdutos(produtos.replace(/,(?=\s*$)/, ''))Para lo que vale, creo que es mejor solo acumular las entradas q faltan en una lista e 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)