如何从对象数组的属性返回数组

时间:2015-08-30 06:28:24

标签: javascript

我有一个对象数组如下:

var lanes = [
{
 "name" : "Breakfast Special",
 "className" : "breakfast-special",
 "sales" : 200,
 "redemptions" : 137
},
{
 "name" : "Free Danish",
 "className" : "free-danish",
 "sales" : 300,
 "redemptions" : 237
},
{
 "name" : "Half Price Coffee",
 "className" : "half-price-coffee",
 "sales" : 240,
 "redemptions" : 37
}];

我想创建一个仅包含为“兑换”存储的数值的数组。我可以访问值:

lanes[0].redemptions;

通过使用循环遍历每个对象,但我正在寻找一种有效的方法来做到这一点。

我使用map函数尝试了这个,如下所示:

var arrayRedemptions = lanes.map(function () {return this.redemptions});

但它不起作用。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

你很亲密。

使用

var arrayRedemptions = lanes.map(function(obj) {
    return obj.redemptions
});

答案 1 :(得分:2)

耶。在地图内部,您可以使用这些参数(每个项目,索引,数组

var arrayRedemptions = lanes.map(function (item, index, array) {
    return item ? item.redemptions : -1;
});

答案 2 :(得分:0)

在使用自动生成内容时,特别是在添加额外检查之后:

var arrayRedemptions = array.map(function(obj) {
    if (obj) 
        return obj.redemptions;
    else
        return -1;
});