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是的,我们可以,这是一种方法。这取决于逻辑。