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

124
Views
Acerca de la matriz de javascript

Quiero obtener el siguiente resultado al final.

 [{x: '10', y: '5'}, {x: '8', y: '4'}]

No entiendo por qué el resultado obtenido por el siguiente código es

 [{x: '8', y: '4'}, {x: '8', y: '4'}] 

 var test =[["10", "5"],["8","4"]]; var series = {}; var sample = []; for (var i = 0 ; i < test.length ; i++){ series.x = test[i][0]; series.y = test[i][1]; console.log(i); console.log(series); sample.push(series); }; console.log(sample);

¿Puedes darme algún consejo sobre lo que me falta?

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

0

series es un objeto, lo que ha hecho en el bucle básicamente cambia el valor de los miembros de la series dos veces y empuja la series a la matriz de sample dos veces. Dado que sample[0] y sample[1] apuntan al mismo objeto, obviamente tienen los mismos miembros, puede verificarlo con console.log(sample[0] === sample[1]) .

about 4 years ago · Juan Pablo Isaza Report

0

Parece que está insertando las referencias del mismo objeto (es decir, serie) en la matriz (es decir, muestra) dos veces. Es por eso que los dos elementos en la lista de resultados se ven iguales. Es posible que desee hacer un pequeño cambio (ver a continuación) para obtener lo que desea.

 var test =[["10", "5"],["8","4"]]; var series; /* declare a new variable */ var sample = []; for (var i = 0 ; i < test.length ; i++){ series = {}; /* assign a new object */ series.x = test[i][0]; series.y = test[i][1]; console.log(i); console.log(series); sample.push(series); /* push the reference of the new object for loop i */ }; console.log(sample);

about 4 years ago · Juan Pablo Isaza Report

0

Hola @shinobu, estás cometiendo un simple error, no estás borrando el objeto dentro del objeto. Estoy agregando una línea al código y lo resolverá.

 var test =[["10", "5"],["8","4"]]; var series = {}; var sample = []; for (var i = 0 ; i < test.length ; i++){ series = {}; series.x = test[i][0]; series.y = test[i][1]; sample.push(series); }; console.log(sample);
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!