Home > database >  string remover of the last value of an array
string remover of the last value of an array

Time:06-03

 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

enter image description here

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)
  • Related