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

105
Visualizações
¿Cómo escribo todas las iteraciones de reducir a una matriz?

La idea detrás de la secuencia de comandos es la siguiente: estoy filtrando la matriz original eliminando todos los valores pares de ella. A continuación, formo una nueva matriz a partir de los productos parciales de la matriz original:

 // new first element = 1 * 3; // second = (first (previous multiplication) * current value) = 3 * 3 (9); // third = (previous product * current value) = 9 * 9 (81)

Obtuve los resultados que quería, pero mi resultado no parece una matriz:

 Input: 3 3 9 Output: 3 9 81

Por favor, ayúdame a dibujar el siguiente resultado:

 Input: 3 3 9 Output: 3 9 81 

 function modify(arr) { var result = []; arr = arr.filter(item => !(item % 2 == 0)) .reduce(function(acc, curItem) { console.log(acc * curItem); return acc * curItem; }, 1) for (let i = 0; i < result.length; i++) { arr.push(result[i]); }; return result; } console.log( modify([3,3,9]) )

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

0

Puede usar reduce para realizar un seguimiento tanto de su producto acumulativo como de la matriz final:

 const input = [3, 3, 9]; const output = input.reduce( (acc,val) => { const newResult = acc.cum * val; acc.result.push(newResult); acc.cum = newResult; return acc; },{cum:1, result:[]}); console.log(output.result);

Como el último elemento de la matriz es siempre el producto acumulativo, también podría escribirlo así:

 const input = [3, 3, 9]; const output = input.reduce( (acc,val) => { const newResult = (acc.length ? acc[acc.length-1] : 1) * val; acc.push(newResult); return acc; },[]); console.log(output);

Depende de usted con cuál de estos le resulte más fácil trabajar.

about 4 years ago · Juan Pablo Isaza Relatório

0

Con el método Array#reduce() y el operador de spread , puede transformar su matriz como en la siguiente demostración:

 let modify = (arr) => arr.reduce((acc,cur,i) => [...acc, (acc[i-1] || 1) * cur],[]); console.log( modify([3,3,9]) );

O simplemente:

 function modify(arr) { return arr.reduce(function(acc,cur,i) { return [...acc, (acc[i-1] || 1) * cur] }, []); } console.log( modify([3,3,9]) );

O si este es un código que se ejecuta una vez, en cuyo caso no necesita una función:

 let oldArray = [3,3,9]; let newArray = oldArray.reduce(function(acc,cur,i) { return [...acc, (acc[i-1] || 1) * cur] }, []); console.log( newArray );

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