我想拥有可重用的函数,该函数根据作为参数传递给函数的属性来映射对象数组。
这是我的代码:
let arr = [
{
country: 'poland',
population: 380000
},
{
country: 'bangladesh',
population: 3492423
}
]
function filterMyArr (myArr, condition) {
return myArr.map(element => element.country)
}
console.log(filterMyArr(arr))
当我更改代码并尝试通过条件时,执行该命令不起作用。我想调用带有第二个参数的函数,例如filterMyArr(arr,country)并得到类似的结果。我希望它可重复使用,因此我可以将其用于人口或任何其他财产。谢谢。
答案 0 :(得分:6)
您只需要使用 bracket notation ,如下所示:
function filterMyArr (myArr, condition) {
return myArr.map(element => element[condition])
}
在condition
中将string
作为object
作为属性的名称传递。
注意:
但是请注意,在不执行此condition
参数的情况下调用函数会在执行操作时引发错误:
console.log(filterMyArr(arr))
答案 1 :(得分:1)
您非常亲密。试试这个
let arr = [
{
country: 'poland',
population: 380000
},
{
country: 'bangladesh',
population: 3492423
}
]
function filterMyArr (myArr, condition) {
return myArr.map(element => element[condition])
}
console.log('Countries - ', filterMyArr(arr, 'country'))
console.log('Population - ', filterMyArr(arr, 'population'))
答案 2 :(得分:0)
您需要将第二个参数(属性)作为字符串传递,并使用方括号表示法进行访问:
let arr = [
{country: 'poland', population: 380000},
{country: 'bangladesh', population: 3492423}
];
function filterMyArr (myArr, prop) {
return myArr.map(obj => obj[prop]);
}
console.log(filterMyArr(arr, 'country'));
console.log(filterMyArr(arr, 'population'));