Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

200
Views
¿Cómo agrupar todos los números pares contiguos en una matriz 2D?

Tengo la siguiente matriz de números:

 [10, 12, 23, 17, 14, 15, 50, 72, 26, 33]

Y quiero agrupar todos los números pares que aparecen juntos, como se muestra a continuación:

 [ [ 10, 12 ], [ 14 ], [ 50, 72, 26 ] ]

Puedo filtrar los números pares, pero no puedo agrupar los contiguos. Creo que reduce se puede usar aquí, pero no puedo entender cómo, cualquier ayuda es muy apreciada.

 const nums = [10, 12, 23, 17, 14, 15, 50, 72, 26, 33]; const result = nums.map((n, i) => (n % 2 === 0 ? [n] : [])); console.log(result);
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puedes usar Array.prototype.reduce

Para cada número que es par, haz lo siguiente:

  1. Introduzca una matriz vacía en la matriz resultante si el último número no era par (es decir, era impar).

  2. Obtenga el último grupo en la matriz resultante usando Array.prototype.at y luego push el número actual en este grupo.

 const nums = [10, 12, 23, 17, 14, 15, 50, 72, 26, 33], result = nums.reduce((res, num, i) => { if (!(num & 1)) { if (!i || nums[i - 1] & 1) { res.push([]); } res.at(-1).push(num); } return res; }, []); console.log(result);

Nota: He usado el operador Bitwise AND (&) para verificar si un número es par o impar, también puede usar el operador Resto (%) .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!