2013-09-30 50 views
2

我有一個對象,看起來像這樣:的JavaScript/Node.js的一個對象轉換成數組

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

我想將其轉換爲持有隻是值的數組,並刪除多餘的' el'裏面:

var myArray = [ 123, 234, 345]; 

有沒有簡單的方法來做到這一點,而不使用JSON.parse或其他JSON友好的方法?老式的Javascript是我正在尋找的。

回答

4

您可以簡單地遍歷對象數組,然後只將push()的值轉換爲新值。

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

爲什麼要使用一個for循環,當你有本地的地圖功能? – SLV

+0

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

6

最優雅的方式是:

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

你也可以這樣做:

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')