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

225
Views
Aplicar una función a cada objeto en una matriz de JavaScript
[ {name:'hi',data:'1,2,3,4,5'} , {name:'hello',data:'5,4,3,2,1'} ]

Lo que necesito es aplicar una división en data de cada objeto en la matriz para que el resultado sea:

 [ {name:'hi',data:[1,2,3,4,5]} , {name:'hello',data:[5,4,3,2,1]} ]

Sé que puedo recorrer la matriz usando for each y producir una nueva matriz, pero ¿hay un método mejor y más rápido?

 var arr = [{ name: 'hi', data: '1,2,3,4,5' }, { name: 'hello', data: '5,4,3,2,1' }]; var new_arr = []; for (i in arr) { var temp = {}; temp.name = arr[i].name; temp.data = arr[i].data.split(','); new_arr.push(temp); }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Podrías usar Array.prototype.map :

 var new_array = old_array.map(function(e) { e.data = e.data.split(','); return e; });

Como decía el comentario, de esta manera cambia el old_array . También podría devolver un nuevo objeto en la función de devolución de llamada sin cambiar la matriz original.

over 4 years ago · Santiago Trujillo Report

0

var data = [{ name: 'hi', data: '1,2,3,4,5' }, { name: 'hello', data: '5,4,3,2,1' }];

Puede usar Array.prototype.map en data para construir una nueva matriz, como esta

 var result = data.map(function (currentObject) { return { name: currentObject.name, data: currentObject.data.split(",").map(Number) }; });

Aquí, split currentObject.data en función de , y luego llamamos a la función Number en todas las cadenas divididas, para que obtenga los data del objeto de resultado como números, como deseaba en la pregunta.

Producción

 [{ name: 'hi', data: [1, 2, 3, 4, 5] }, { name: 'hello', data: [5, 4, 3, 2, 1] }] 

 let data = [{ name: 'hi', data: '1,2,3,4,5' }, { name: 'hello', data: '5,4,3,2,1' }], result = data.map(function(currentObject) { return { name: currentObject.name, data: currentObject.data.split(",").map(Number) }; }); console.log(result);

over 4 years ago · Santiago Trujillo 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!