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

210
Visualizações
¿Cómo obtener la suma de números pares e impares usando el método Array.reduce?

cómo obtener la suma de impares, incluso usando el método de reducción, lo hice como se muestra en el código a continuación, pero devolví indefinido, @ js-beginner

// código a continuación

 nums= [1,2,3,4,5,6,7,8,9] function getOddEvenSum(numbers){ let{even,odd} = numbers.reduce((acc, cuu) => cuu%2 === 0?acc.even + cuu:acc.odd+cuu,{even:0, odd:0}) return {even, odd} } console.log(getOddEvenSum(nums)

// salida que obtengo a continuación

 {even:undefined, odd:undefined}
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puedes usar Array.prototype.reduce así:

 const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const [odds, evens] = nums.reduce( ([odds, evens], cur) => cur % 2 === 0 ? [odds, evens + cur] : [odds + cur, evens], [0, 0] ); console.log(odds); console.log(evens);

about 4 years ago · Juan Pablo Isaza Relatório

0

El valor que devuelva de su devolución de llamada reducida será el valor de acc en la próxima invocación/iteración de su matriz de números. Actualmente, su acc comienza como un objeto, pero como solo está devolviendo un número de su primera iteración, todas las iteraciones posteriores usarán un número como cuenta, que no .odd propiedades acc o .even . En su lugar, podría devolver un nuevo objeto con propiedades pares/impares actualizadas para que acc permanezca como un objeto en todas las iteraciones:

 const nums = [1,2,3,4,5,6,7,8,9]; function getOddEven(numbers){ return numbers.reduce((acc, cuu) => cuu % 2 === 0 ? {odd: acc.odd, even: acc.even + cuu} : {even: acc.even, odd: acc.odd+cuu}, {even:0, odd:0}); } console.log(getOddEven(nums));

about 4 years ago · Juan Pablo Isaza Relatório

0

No es así como funciona la sintaxis de reduce . Una posible implementación:

 function getOddEven(nums) { return nums.reduce( ({odd, even}, num) => num % 2 === 0 ? {odd, even: even + num} : {odd: odd + num, even}, {odd: 0, even: 0}, ); }

Yo diría que esto no está muy claro. Dado que el rendimiento probablemente no sea crítico, una alternativa más clara sería:

 function getOddEven(nums) { return { odd: nums.filter(num => num % 2 == 1).reduce((acc, num) => acc + num), even: nums.filter(num => num % 2 == 0).reduce((acc, num) => acc + num), }; }
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