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

218
Views
¿Cómo tomar cada enésimo elemento continuo de una matriz?

Soy un poco nuevo en javascript y mi objetivo es tomar cada 3 elementos en mi matriz y almacenarlos como una matriz para enviarlos a otra matriz. A continuación se muestra cómo se vería esto

 var a = [11, 2, 3, 4, 5, 6, 7, 8, 9, 2, 2, 3, 4, 5, 4];

La salida sería

 var arrays = [[11, 2, 3], [4, 5, 6], [7, 8, 9], [2, 2, 3], [4, 5, 4]]

Estos son solo números enteros, pero en mi aplicación, hay una matriz que contiene 73 objetos que me gustaría almacenar de esta manera.

 var objects = [{}, {}, {}], [{}, {}, {}] ,,,]

¿Habría algún problema basado en la cantidad de objetos ya que 73 no es divisible por tres?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Algo así, los objetos son abitrary aquí. Estoy usando .slice para obtener cada siguiente grupo de 3 y lo empujo a la matriz de búfer. Estoy usando .length como mi límite en el ciclo for e incrementando en 3 cada vez.

 var a = [ {x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7}, {x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5}, {x:4} ]; buffer = []; for(i=0; i<a.length; i+=3) { buffer.push(a.slice(i, i+3)); } console.log(buffer);

Además, slice puede manejar arreglos que no son divisibles por 3. Puede ver en este ejemplo que el objeto sobrante está en su propio arreglo.

 var a = [ {x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7}, {x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5}, {x:4}, {x:112} ]; buffer = []; for(i=0; i<a.length; i+=3) { buffer.push(a.slice(i, i+3)); } console.log(buffer);

También puede adaptarse fácilmente a cualquier n elementos:

 var a = [ {x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7}, {x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5}, {x:4}, {x:112} ]; let n = 4; buffer = []; for(i=0; i<a.length; i+=n) { buffer.push(a.slice(i, i+n)); } console.log(buffer);

Déjeme saber si esto ayuda.

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!