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

95
Visualizações
JavaScript: actualice una matriz de objetos profundamente anidada con la ruta de destino

El nivel de anidamiento siempre se desconoce y los elementos secundarios pueden ser indefinidos o una matriz con al menos un elemento. Cada clave es siempre única. Este sería un ejemplo:

 const arr = [{ key: '001', children: [{ key: 'abc', children: [{ key: 'ee', children: [{ key: 'goc', }, { key: 'zzv', children: [{ key: '241', }], }], }], }, { key: '125', children: undefined, }], }, { key: '003', children: [{ key: 'ahge', }, { key: '21521', }], }];

Me gustaría escribir una función que reciba una clave para encontrar el elemento y luego actualice su campo secundario con la matriz secundaria dada y luego devuelva la matriz completa.

 // Function that returns arr with updated the target element - how can I write this? const mysteryFn = (arr, key, childrenToUpdate) => { // Do something.. return arr; } const key = 'goc'; const childrenToUpdate = [{ key: '12345', }, { key: '25221a', }]; const newArr = mysteryFn(arr, key, childrenToUpdate); // expected newArr const newArr= [{ key: '001', children: [{ key: 'abc', children: [{ key: 'ee', children: [{ key: 'goc', children: [{ key: '12345', }, { key: '25221a', }], }, { key: 'zzv', children: [{ key: '241', }], }], }], }, { key: '125', children: undefined, }], }, { key: '003', children: [{ key: 'ahge', }, { key: '21521', }], }];
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto se puede lograr con la recursividad.

 const mysteryFn = (arr, key, childrenToUpdate) => { // if children are undefined if (!arr) return; // loop over each entry and its children to find // entry with passed key arr.forEach((entry) => { if (entry.key === key) { entry.children = childrenToUpdate; } // recursive call to traverse children mysteryFn(entry.children, key, childrenToUpdate); }); return arr; };
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