2013-09-30 3 views
2

j'ai un objet qui ressemble à ceci:JavaScript/Node.JS pour convertir un objet dans un tableau

[ 
    {'el': 123}, 
    {'el': 234}, 
    {'el': 345} 
] 

Je voudrais convertir en un tableau qui contient uniquement les valeurs, et de supprimer le supplément ' el » intérieur:

var myArray = [ 123, 234, 345]; 

est-il un moyen facile de le faire, sans utiliser JSON.parse ou d'autres méthodes respectueuses JSON? Javascript à l'ancienne est ce que je cherche.

Répondre

4

Vous pouvez simplement faire une boucle sur le tableau d'objets et seulement push() les valeurs dans un nouveau.

var arrOfObjs = [ 
    { 'el' : 123 } , 
    { 'el' : 234 }, 
    { 'el' : 345 } 
]; 

var arrOfVals = []; 
for each(var obj in arrOfObjs) { 
    arrOfVals.push(obj.el); 
} 

for each(var val in arrOfVals) { 
    console.log(val); // 123, 234, 345 
} 
+2

Pourquoi utiliser une boucle quand vous avez la fonction de carte native? – SLV

+0

'var arrOfVals = arrOfObjs.map (fonction (it) {return it.el})' –

6

La façon la plus élégante est:

var arrayToMap = [ 
    {'el' : 123}, 
    {'el' : 234}, 
    {'el' : 345} 
]; 
var mappedArray = arrayToMap.map(function (item) { return item.el; }); 

Vous pouvez également faire:

var mappedArray = [ 
    {'el' : 123}, 
    {'el' : 234}, 
    {'el' : 345} 
].map(function (item) { return item.el; }); 
1
var rawArray = [ 
    {'el': 123}, 
    {'el': 234}, 
    {'el': 345} 
] 

var myArray = rawArray.map(item=>item.el); 
0
const _ = require('lodash'); 
const mappedArray = _.map(arrayToMap, 'el') 
Questions connexes