【问题标题】:Mapping through array of objects and access their property dynamically (with a variable)通过对象数组映射并动态访问它们的属性(使用变量)
【发布时间】:2017-05-17 15:28:44
【问题描述】:

我有一个数组,里面有不同的对象。我想编写一个函数pluck,它接受数组和一个属性,并返回一个包含该属性在不同对象中的所有值的数组。

我试过这个:

var paints = [
    {color: 'red'},
    {color: 'yellow'},
    {color: 'blue'},
];

function pluck(arr, property) {
    return arr.map(function(obj, property) {
        return obj[property];
    });

}
console.log(pluck(paints, 'color'));

这不起作用。

如果我像这样更改函数:

function pluck(arr) {
    return arr.map(function(obj) {
        return obj['color'];
    });

...它可以工作,但现在显然是硬编码的。但是,我想调用该函数并指定要在数组中返回的属性。

【问题讨论】:

标签: javascript arrays object javascript-objects


【解决方案1】:

非常接近。

function pluck(arr, property) {
    return arr.map(function(obj) {
        return obj[property];
    });
}

您不需要内部函数中的 property 参数,并且通过拥有它,您将传入的参数重新定义为其他东西。

var paints = [
    {color: 'red'},
    {color: 'yellow'},
    {color: 'blue'},
];

function pluck(arr, property) {
    return arr.map(function(obj) {
        return obj[property];
    });

}
console.log(pluck(paints, 'color'));

【讨论】:

猜你喜欢
  • 2023-04-08
  • 2014-10-11
  • 2021-10-25
相关资源
最近更新 更多