javascript - 通过对象数组进行映射并动态访问其属性(使用变量)

标签 javascript arrays object javascript-objects

我有一个数组,里面有不同的对象。我想编写一个函数 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'];
    });

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

最佳答案

非常接近。

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

关于javascript - 通过对象数组进行映射并动态访问其属性(使用变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029100/

相关文章:

c# - 从 int 作为对象转换为 float 需要双重转换

javascript - 带有 svg 节点的 D3 图 - 如何将节点移动到任意位置

javascript - Vuejs - 使用 Prop 将数据从 parent 传递给 child

javascript - 根据列表鼠标悬停突出显示表数据

python : Appending Integer array in list while iterating

javascript - 我如何将对象键名称指定为与其值相同的名称?

javascript - 从 Meteor 运行 bash 脚本服务器端时出现问题

java - 打印数组变量,而不是变量指针位置

java - random() 中的唯一值

c++ - 我可以在另一个类的实例中显式调用对象的析构函数吗?