以有效的方式从对象中获取数组中对象的属性值

时间:2017-10-31 10:58:48

标签: javascript arrays javascript-objects

我有一个数组,其中包含服务器返回的对象:

myArr = [{
    "id": 1
}, {
    "id": 2
}, {
    "id": 3
}, {
    "id": 4
}, {
    "id": 5
}, {
     "id": 6
}, {
    "id": 7
}, {
    "id": 8
}, {
    "id": 9
}, {
    "id": 10
}];

我需要这个成为:

myArr = [
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];

我可以循环遍历数组,例如:

// array to hold property values
let myNewArr = [];

// loop through the objects and take the value of id of each object
for (let i = 0; i < myArr.length; ++i) {
    myNewArr.push(myArr[i].id);
}

有没有更有效的方法来做到这一点,最好是使用Lodash?我不想在代码中添加另一个循环,因为它已经充满了循环。

2 个答案:

答案 0 :(得分:4)

阵列地图是您正在寻找的:

myArr.map(function(x){ return x.id; })

它会自动循环你的数组并提取&#34;提取&#34;内部对象的id值,返回一个数组。

答案 1 :(得分:1)

用lodash:

let myArr = _.map(myArr, (b) => b.id);

使用箭头操作符:

let d = myArr.map(b => b.id);