Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
Eliminar un elemento de la matriz y actualizar el orden

Tengo una variedad de objetos en el estado. El objeto tiene la propiedad order. Necesito apoyo de orden para arrastrar y soltar. La lista está ordenada por orden. Además, hay una función para eliminar un elemento de la lista. ¿Cómo eliminar correctamente un elemento de una matriz con la actualización de la propiedad de pedido?

 const deleteTodo = (id) => { //I tried using map but it doesn't work setTodos(todos.map((todo, index) => { if (todo.id !== id) { return { ...todo, order: index + 1 } } return todo })) } /* for example: [{title: 'apple', order: 1}, {title: 'banana', order: 2}, {title: 'pear', order: 3}] => delete banana => [{title: 'apple', order: 1}, {title: 'pear', order: 2}] */

Escribí esta solución basada en las opciones sugeridas:

 const deleteTodo = (id) => { const newTodos = todos .filter(todo => todo.id !== id) .map((todo, index) => ({ ...todo, order: index + 1 })) setTodos(newTodos) }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

  1. Filtrar para eliminar
  2. mapa para cambiar el valor del pedido

 const items = [{ title: 'apple', order: 1 }, { title: 'banana', order: 2 }, { title: 'pear', order: 3 }] //Delete {title: 'banana', order: 2} const newItems = items.filter(el => el.title !== "banana").map(el => el.order > 2 ? ({ ...el, order: el.order - 1 }) : el) console.log(newItems)

about 4 years ago · Juan Pablo Isaza Relatório

0

Debe filtrar la matriz que no tiene la identificación específica y asignar su orden más tarde

 const deleteTodo = (id) => { const newTodos = todos.filter(todo => todo.id !== id) newTodos.map((todo, index) => { return { ...todo, order: index } }) setTodos(newTodos) }

about 4 years ago · Juan Pablo Isaza Relatório

0

Esta función obtendrá el resultado que está buscando pero no con la eliminación. Vuelvo a crear la matriz con los objetos excluyendo el que desea eliminar y les doy el nuevo orden.

 const data = [{title: 'apple', order: 1}, {title: 'banana', order: 2}, {title: 'pear', order: 3}]; function removeObjectAndReorder(data, orderToRemove){ let result = []; let counter = 0; for (let i = 0; i < data.length; i++){ if (i+1 !== orderToRemove){ result.push({ 'title': data[i].title, 'order': ++counter, }) } } return result; } console.log(removeObjectAndReorder(data,2)); // Remove banana (order = 2)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda