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