javascript - 动态访问.map数组函数中的对象属性

标签 javascript arrays object properties

我想要一个可重用的函数,它根据作为参数传递给函数的属性来映射对象数组。

这是我的代码:

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) 并获得类似的结果。我希望它可以重复使用,这样我就可以将它用于人口或任何其他属性(property)。谢谢。

最佳答案

您只需使用 bracket notation ,像这样:

function filterMyArr (myArr, condition) {
  return myArr.map(element => element[condition])
}

条件作为字符串作为对象中的属性名称传递。

注意:

但请注意,在不使用此 condition 参数的情况下调用函数会引发错误,当您执行以下操作时:

console.log(filterMyArr(arr))

关于javascript - 动态访问.map数组函数中的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53262475/

相关文章:

javascript - 如何将div从鼠标移开

javascript - Browserify 将多个文件添加到bundle.js

javascript - 如何在透明png下方移动较低的z级元素

arrays - 使用阵列的交换机未运行?

javascript - <script> 标签中的不区分大小写的 string.search(array[i]) 不起作用

c# - 将对象限制为几种类型

php - 如何使用 JavaScript 打开弹出窗口并发送 POST 变量?

c++ - 分配 C++ 对象数组

javascript - d3 无法读取未定义的属性 'classed'

java - 我有一个包含多个 JSON 对象的数据字符串,如何将字符串中的所有 JSON 对象存储在填充对象的数组中?