将对象数组转换为数组列表(javascript)

时间:2016-09-21 20:39:59

标签: javascript arrays loops object underscore.js

我有一个对象数组,如下所示。

states: Array[3]
[0-2]
 0:Object
     Value: "34343"
 1:Object
     Value: "2332"
 2:Object
     Value: "2333"

我想将上面的对象数组转换为数组列表,如下所示。有人可以让我知道如何在javascript中实现这样的事情。

states: ["34343", "2332", "2333"]

3 个答案:

答案 0 :(得分:1)



var inputArray = [{
  value: 1
}, {
  value: 2
}];

var normalizedArray = inputArray.map(function(obj) {
  return obj.value;
});

console.log(normalizedArray.join(","))




您可以使用Array.map

答案 1 :(得分:1)

最好的方法是在评论中建议:

(其中var arr是你的数组)

new_arr = arr.map(el => el.Value)

这是一个利用最新的es6功能array.prototype.map和箭头功能的简洁解决方案。

如果你没有在你的项目中使用es6,你可能会遇到普通的es5 - 也许你有下划线或者lodash?在那种情况下:

new_arr = _.map(arr, function(el) {
  return el.Value;
});

如果你没有下划线并且没有es6,你可能不得不使用循环来自己采用“旧”的方式:

new_arr = []
for (var i = 0, j = arr.length; i < j; i++) {
  new_arr.push(arr[i].Value);
}

答案 2 :(得分:0)

或在ES6中

var stateObject = [{value : 123}, {value : 654}, {value : 654}];
var stateArray = stateObject.map(item => item.value);
console.log(stateArray); // [ 123, 654, 654 ]