javascript - 函数迭代对象数组并将选定的对象属性展平为字符串

标签 javascript arrays function object

我正在尝试编写一个自定义函数,该函数迭代对象数组,并通过将它们作为用逗号连接的字符串返回来展平任何选定的对象属性键。

也许用代码更好地解释:

var products = [
  {
    "id": 1,
    "variants": {
      "colour": "black"
    },
  },
  {
    "id": 2,
    "variants": {
      "colour": "red"
    }
  }
];

function joinedByComma(arr, keys) {
  // some code
}

joinedByComma(products, ["variants", "colour" ]);
// returns "black,red"

关于如何编写函数 joinedByComma 有什么见解吗?第二个数组参数中的项目数可以是任意长度,具体取决于对象的嵌套方式...

最佳答案

 const joinedByComma = (arr, keys) =>
   arr.map(el => keys.reduce((obj, key) => obj[key] || {}, el)).join();

只需将数组映射到每个条目,方法是将键减少到对象的值,然后将它们连接起来。

关于javascript - 函数迭代对象数组并将选定的对象属性展平为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51517938/

相关文章:

javascript - 间断和非间断空格 ascii 字符的区别

python - 将一个函数的所有参数传递给另一个函数

javascript - 函数创建作为参数?

javascript - 我可以将 href 与 urlRouterProvider 一起使用吗?

javascript - 时刻.js : Date between dates

javascript - 如何将数据传递给 fancybox 函数?

java - 为什么通过二维数组打印时显示整个对象属性

JavaScript - 我想将两条信息分配给一个数组 - 我是否使用多维数组?

javascript - 动态访问Javascript数组

python - 可以在 python 中更改函数的 repr 吗?