Javascript 动态访问.map数组函数中的对象属性
我希望有一个可重用的函数,它根据作为参数传递给函数的属性映射对象数组 这是我的密码:Javascript 动态访问.map数组函数中的对象属性,javascript,arrays,object,properties,Javascript,Arrays,Object,Properties,我希望有一个可重用的函数,它根据作为参数传递给函数的属性映射对象数组 这是我的密码: let arr = [ { country: 'poland', population: 380000 }, { country: 'bangladesh', population: 3492423 } ] function filterMyArr (myArr, condition) { return myArr.map(element => ele
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),并得到类似的结果。我希望它是可重用的,这样我就可以使用它的人口或任何其他财产。谢谢。您只需使用,如下所示:
function filterMyArr (myArr, condition) {
return myArr.map(element => element[condition])
}
将条件
作为字符串
作为对象中属性的名称传递
注意:
但是请注意,如果您执行以下操作,则在没有此条件
参数的情况下调用函数将抛出错误:
console.log(filterMyArr(arr))
你很接近。试试这个
让arr=[
{
国家:'波兰',
人口:38万
},
{
国家:'孟加拉国',
人口:3492423
}
]
函数filterMyArr(myArr,条件){
返回myArr.map(元素=>元素[条件])
}
console.log('Countries-',filterMyArr(arr,'country'))
console.log('Population-',filterMyArr(arr,'Population'))
您需要将第二个参数(属性)作为字符串传递,并使用括号表示法访问它:
让arr=[
{国家:'波兰',人口:380000},
{国家:'孟加拉国',人口:3492423}
];
函数过滤器myArr(myArr,prop){
返回myArr.map(obj=>obj[prop]);
}
console.log(filterMyArr(arr,'country'));
log(filterMyArr(arr,'population')代码>谢谢。忘了试试括号,我的坏:/你可以将条件
的默认值设置为国家
@Mohammad是的,我们可以,这是一种方法。这取决于逻辑。