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

176
Visualizações
¿Encontrar el elemento si existe en una matriz de niños anidados profundos?

Necesito encontrar si el elemento existe en una matriz anidada profunda.

Ejemplo :

 let arr = [ { id: 1 , title : 'Test' , children: [ {id: 1 , title: 'Title' , hasChild : true }, {id: 1 , title: 'Title' , hasChild : false }, {id: 1 , title: 'Title' }, ] }, ]

Necesito repetir el pensamiento arr.children y tratar de encontrar si tiene una propiedad con el nombre hasChild find item y establecerlo en falso.

Después de hacer un bucle, necesito obtener una matriz como :

 let arr = [ { id: 1 , title : 'Test' , children: [ {id: 1 , title: 'Title' , hasChild : false }, //here is changed hasChild to false {id: 1 , title: 'Title' , hasChild : false }, {id: 1 , title: 'Title' }, ] }, ]

Estoy encontrando la manera pero necesito una mejor solución:

 arr.map(it) => { if (it.hasChild) { it.dashCheck = false; } });
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

demostración:

 let arr = [{ id: 1 , title : 'Test' , children: [ {id: 1 , title: 'Title' , hasChild : true }, {id: 1 , title: 'Title' , hasChild : false }, {id: 1 , title: 'Title' }, ] }]; arr.forEach((obj) => { obj.children.forEach((childObj) => { if (childObj.hasChild) { childObj.hasChild = false; } }); }); console.log(arr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar funciones recursivas para realizar operaciones en objetos/matrices infinitamente anidados, etc.

 function recursiveUpdate(array, index) { const element = array[index]; if(!element) return; if(Object.keys(element).indexOf('children') > -1) { element.hasChild = true; recursiveUpdate(element['children'], 0); } else { element.hasChild = false; recursiveUpdate(array, index+1); } } recursiveUpdate(arr, 0);
about 4 years ago · Juan Pablo Isaza Relatório

0

Editar : parece que la pregunta se modificó después de dar mi respuesta. Actualicé mi respuesta para reflejar esto.

Si la estructura de arr siempre es como la que mencionaste en tu pregunta, podrías simplemente iterar sobre children elementos secundarios usando el método forEach de la clase Array :

 arr.forEach(item => { item.children.forEach(child => { // Edit: Revised solution if (child.hasChild === true) { child.hasChild = false; } // Edit: Previous solution // child.hasChild = child.hasChild === true ? false : child.hasChild; }); });

Nota : Esto alterará la matriz original y no creará una copia con el valor alterado para hasChild .

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