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

239
Visualizações
Cómo ubicar y eliminar un elemento en una matriz de objetos

Tengo una matriz como:

 const arr=[{ id: 9, name: 'Patrimônios', children: [], }, { id: 10, name: 'Despesas', children: [ { id: 16, name: 'Manutenção' }, { id: 17, name: 'Despesa' }, { id: 18, name: 'Impostos' }, { id: 19, name: 'Gráfica' }, ], }, ....]

Me gustaría una función para eliminar un artículo por id. Como podemos ver el ítem puede estar en 'niños' o no. Si el elemento está en los "hijos", me gustaría eliminarlo solo de la matriz de niños.

Me gustaría algo como:

 findById(tree, nodeId) { for (const node of tree) { if (node.id === nodeId) return node if (node.children && node.children.length) { const desiredNode = this.findById(node.children, nodeId) if (desiredNode) return desiredNode } } return false }, function deleteItemById(arr,id){ item=findById(arr,id) if (item){ /// here How I can delete it? } }

¿Cómo podría hacer eso?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Aquí hay una función recursiva que coincide con la terminología de su código para filtrar un objeto por id:

 const removeObjectByIdRecursively = (list, id) => list.reduce((acc, item) => { if (item.id === id) return acc; if (item.children) { return [ ...acc, { ...item, children: removeObjectByIdRecursively(item.children, id) } ]; } return [ ...acc, item ]; }, []);
about 4 years ago · Juan Pablo Isaza Relatório

0

Súper básico, no probado y dirigido directamente a la forma de sus datos, pero esto muestra cómo puede usar Array.filter() para devolver una nueva matriz que no contiene los elementos que desea eliminar por id.

 const testArray = [ { id: 0, value: "zero" }, { id: 1, value: "one", children: [{ id: 3 }] }, { id: 2, value: "two" }, { id: 3, value: "three" }, { id: 4, value: "four" }, ]; const deleteObjectById = ({ ary, id }) => ary.filter((item) => { const child = (item.children || []).find((c) => c.id === id); return item.id !== id && !(!!child); }); const filteredArray = deleteObjectById({ ary: testArray, id: 3, }); console.log(testArray); console.log(filteredArray);
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