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

195
Visualizações
Cómo hacer un bucle en una matriz anidada por Inside Array en una solución dinámica

Tengo problemas con mi código porque creo que no es flexible si se inserta una nueva matriz en mi matriz anidada, no consideraré la nueva matriz. Lo importante es cómo accedo al primer elemento, luego al segundo y así sucesivamente a la vez de cada arreglo.

Aquí hay un ejemplo:

 const nestedArr = [ [ "COCA - COLA ORIGINAL 355 ML VIDRIO RET", "COCA - COLA ORIGINAL 600 ML PET NR", "COCA - COLA ORIGINAL 2.5 LT RET"], [ "$176.02", "$100.00", "$130.00" ], [ "10", "3", "15" ] ] const ordersObj = [] for (let i=0; i< nestedArr[0].length; i++){ var name = orderArr[0][i]; var price = Number(orderArr[1][i].replace("$","")); var qty = orderArr[2][i]; var amount = price * qty; ordersObj.push({name,price,qty,amount}) }

Lo que me gustaría hacer es evitar poner 0,1,2 para establecer la posición de la matriz anidada a la que quiero acceder, quiero ejecutar un ciclo o cambiar mi código para que 0,1,2 no estén codificados .

Saludos

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

0

Parece que tu código es un poco desordenado, supongo:

 const nestedArr = [ [ "COCA - COLA ORIGINAL 355 ML VIDRIO RET", "COCA - COLA ORIGINAL 600 ML PET NR", "COCA - COLA ORIGINAL 2.5 LT RET"], [ "$176.02", "$100.00", "$130.00" ], [ "10", "3", "15" ] ] const ordersObj = [] for (let i=0; i< nestedArr[0].length; i++){ // This has no value yet // var name = orderArr[0][i]; // this should be var name = nestedArr[0][i] var price = Number(nestedArr[1][i].replace("$","")); var qty = nestedArr[2][i]; var amount = price * qty; ordersObj.push({name,price,qty,amount}) }
about 4 years ago · Juan Pablo Isaza Relatório

0

Recomendaría no tratar de hacerlo todo en un ciclo, sino más bien definir una función constructora para su objeto y asignar la fuente nestedArr a una matriz 2D más utilizable con cada propiedad en su índice dado en las sub-matrices (aquí usando un función zip de la utilidad, veaesta pregunta para la discusión).

 const nestedArr = [ ['COCA - COLA ORIGINAL 355 ML VIDRIO RET', 'COCA - COLA ORIGINAL 600 ML PET NR', 'COCA - COLA ORIGINAL 2.5 LT RET'], ['$176.02', '$100.00', '$130.00'], ['10', '3', '15'], ]; const OrderObj = ([name, price, qty]) => { const _price = Number(price.replace('$', '')); const _qty = Number(qty); return { name, price: _price, qty: _qty, amount: _price * _qty, }; }; const zip = (...rows) => [...rows[0]].map((_, i) => rows.map((row) => row[i])); const orderObjs = zip(...nestedArr).map(OrderObj); console.log(orderObjs); // console.log(zip(...nestedArr)); /* [ [ 'COCA - COLA ORIGINAL 355 ML VIDRIO RET', '$176.02', '10' ], [ 'COCA - COLA ORIGINAL 600 ML PET NR', '$100.00', '3' ], [ 'COCA - COLA ORIGINAL 2.5 LT RET', '$130.00', '15' ] ] */

Agregar más filas a nestedArr simplemente requiere ajustar su constructor para tener en cuenta las nuevas filas con los parámetros desestructurados que sirven como leyenda para las filas en nestedArr .

 const nestedArr = [ ['COCA - COLA ORIGINAL', 'COCA - COLA ORIGINAL', 'COCA - COLA ORIGINAL'], ['$176.02', '$100.00', '$130.00'], ['355 ML VIDRIO RET', '600 ML PET NR', '2.5 LT RET'], // <─── added row ['10', '3', '15'], ]; // ┌───────────────────────────── added index const OrderObj = ([name, price, size, qty]) => { const _price = Number(price.replace('$', '')); const _qty = Number(qty); return { name, size, // <───────────────────────────────────────────────── added property price: _price, qty: _qty, amount: _price * _qty, }; }; const zip = (...rows) => [...rows[0]].map((_, i) => rows.map((row) => row[i])); const orderObjs = zip(...nestedArr).map(OrderObj); console.log(orderObjs);

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