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

131
Visualizações
¿Cómo convierto un objeto de matriz en una matriz bidimensional?

Aquí hay una lista de matrices.

 const list = [ { id: 5844, option: 'fruit' children: ['apple', 'banana', 'pear'] }, { id: 5845, option: 'vegetables' children: ['tomato', 'potato', 'spinach'] } ]

Quiero obtener una nueva matriz como esta

manzana de los hijos de la fruta es el índice 0

el tomate de los hijos de las verduras es indice = 0

por lo que son coincidentes

 [['apple', 'tomato'], ['banana', 'potato'], ['pear', 'spinach']]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Creo que podemos probar este fragmento de código.

 const list = [ { id: 5844, option: 'fruit', children: ['apple', 'banana', 'pear'] }, { id: 5845, option: 'vegetables', children: ['tomato', 'potato', 'spinach'] } ] var ans = [] list.forEach(item => { item.children.forEach((child, index) => { if (!ans[index]) { ans[index] = [] ans[index].push(child) } else { ans[index].push(child) } }) })
about 4 years ago · Juan Pablo Isaza Relatório

0

Con esta solución, no importa cuántos objetos haya en la matriz. Puede map sobre los elementos secundarios en el primer objeto y usar su longitud para devolver un flatMap de los elementos secundarios.

 const list=[{id:5844,option:"fruit",children:["apple","banana","pear"]},{id:5845,option:"vegetables",children:["tomato","potato","spinach"]},{id:5846,option:"buildings",children:["church","warehouse","skyscraper"]}]; function getNewData(list) { // `map` over the children in the first object // using its index to return a new flattened array // of all array object children return list[0].children.map((_, i) => { return list.flatMap(obj => obj.children[i]); }); } console.log(getNewData(list));

about 4 years ago · Juan Pablo Isaza Relatório

0

Supongo que tus hijos tienen la misma longitud. Podemos usar 2 bucles para agrupar el elemento de los niños.

Primer ciclo para iterar el elemento de los niños.

Segundo bucle para iterar el elemento de la lista.

Aquí hay un código simple para resolver su caso.

 var listSize = list.length; var childSize = list[0].children.length; var expectedArrs = []; for(var i=0;i<childSize;i++){ var groupByChild = []; for(var j=0;j<listSize;j++){ groupByChild.push(list[j].children[i]); } expectedArrs.push(groupByChild); } console.log(expectedArrs);

El resultado de la consola:

 [["apple", "tomato"], ["banana", "potato"], ["pear", "spinach"]]
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