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

119
Visualizações
Encuentre elementos y verifique si tiene la misma identificación que en el ámbito principal y si tiene agregar isDisable al elemento

Hola a todos, necesito obtener consejos sobre cómo realizar una función de este tipo para buscar y agregar propiedades si el alcance de los niños tiene las mismas identificaciones que el alcance de los padres y agrega la clave isDisable .

Los datos que obtuve y necesito transformarlos con una nueva propiedad isDisable

 const data = [ { id: "MT1", children: [] }, { id: "MT2", children: [] }, { id: "MT4", children: [] }, { id: "1234", children: [ { id: "MT1", children: [] }, { id: "MT65", children: [] }, ] }, { id: "537465", children: [{ id: "MT1", children: [] }, { id: "MT2", children: [ { id: "MT1", children: [] }, { id: "MT12", children: [] } ] }, ] } ]

Esta es una función para buscar y agregar una propiedad a un elemento y resultado.

 const someSearchFunction = (data) => {} console.log(someSearchFunction(data)) const data = [ { id: "MT1", children: [], isDisable: false }, { id: "MT2", children: [], isDisable: false }, { id: "MT4", children: [], isDisable: false }, { id: "MT12", children: [], isDisable: false }, { id: "1234", children: [ { id: "MT1", children: [], isDisable: true }, { id: "MT65", children: [], isDisable: false }, ] }, { id: "537465", children: [ { id: "MT1", children: [], isDisable: true }, { id: "42354322", children: [ { id: "MT1", children: [], isDisable: true }, { id: "MT12", children: [] isDisable: false } ] }, ] } ]

¡Gracias!

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Podemos hacer esto capturando la lista de ID para el nivel actual para pasar a la llamada recursiva para nuestros hijos.

Aquí hay una versión que no muta la entrada: ¡no somos bárbaros! -- pero devuelve un nuevo árbol con la propiedad isDisable configurada apropiadamente.

 const disableDupIds = (xs, ids = [], currLevel = xs .map (x => x .id)) => { return xs .map (({id, children, ...rest}) => ({ id, ...rest, isDisable: ids .includes (id), children: disableDupIds (children, currLevel) })) } const data = [{id: "MT1", children: []}, {id: "MT2", children: []}, {id: "MT4", children: []}, {id: "1234", children: [{id: "MT1", children: []}, {id: "MT65", children: []}]}, {id: "537465", children: [{id: "MT1", children: []}, {id: "MT2", children: [{id: "MT1", children: []}, {id: "MT12", children: []}]}]}] console .log (disableDupIds (data))
 .as-console-wrapper {max-height: 100% !important; top: 0}

Primero capturamos la lista de ID en nuestro nivel actual, luego simplemente mapeamos nuestros elementos, devolviendo nuevas versiones con isDisable establecido en true cuando nuestra ID actual está en la lista del nivel anterior, y recurrente en nuestros hijos, usando nuestra lista negra de actual identificadores de nivel

about 4 years ago · Santiago Gelvez Relatório

0

Su resultado esperado no es una matriz válida, mejor verifíquelo.

Puedes probar esta función:

 const someSearchFunction = (data) => { data.forEach(item => { item.isDisable = false item.children.some(child => { if (data.some(parent => { return parent.id === child.id })) { child.isDisable = true } else { child.isDisable = false } } ) })

}

about 4 years ago · Santiago Gelvez 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