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

353
Visualizações
¿Cuál es la mejor manera de encontrar el índice de un elemento dentro de una matriz y esa matriz está dentro de otra?

Me preguntaba cuál es la mejor manera de encontrar el índice de un elemento que se encuentra dentro de una matriz y esa matriz se encuentra dentro de otra matriz.

Este es el tipo de datos que tengo:

 const list = [ { id: 1, items: [ { name: "milk", id: 99 }, { name: "water", id: 33 } ] }, { id: 4, items: [ { name: "oranges", id: 22 }, { name: "patatoes", id: 13 } ] } ];

Digamos que quiero saber el índice del artículo con el nombre "leche", ya sé la identificación del objeto principal (1) y también sé la identificación del artículo (99).

Mi objetivo es cambiar el nombre del artículo de "leche" a "queso". Mi primera idea fue hacerlo así:

 const firstObjectIndex = arr.findIndex(el => el.id === 1) if(firstObjectIndex !== -1){ const itemIndex = arr[firstObjectIndex].items.findIndex(item => item.id === 99) if(itemIndex !== -1){ // this is where I change the name to cheese arr[firstObjectIndex].items[itemIndex].name = 'Cheese' } }

El método que usé anteriormente hace el trabajo, pero me pregunto si hay una mejor manera de hacerlo en JavaScript. Cualquier ayuda sería muy apreciada

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

0

Realmente no necesita el índice, sino el objeto en sí. Por lo tanto, use Array#find . Esto permite que ambas búsquedas se combinen fácilmente en una declaración con el operador de encadenamiento opcional .

 const list=[{id:1,items:[{name:"milk",id:99},{name:"water",id:33}]},{id:4,items:[{name:"oranges",id:22},{name:"patatoes",id:13}]}]; let obj = list.find(x => x.id === 1)?.items.find(y => y.name === 'milk'); if(obj) obj.name = 'Cheese'; console.log(list);

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