JavaScript中对象数组的长度

时间:2018-12-15 05:22:02

标签: javascript ecmascript-6

我了解找到JS对象的长度已得到广泛回答here

其中一种建议的解决方案是Object.keys(myObj).length

但是,我正在努力寻找如何找到对象数组中包含的所有属性的长度。

即:

const users = [
  {
    firstName: "Bruce",
    lastName: "Wayne",
    id: "1",
  },

  {
    firstName: "Peter",
    lastName: "Parker",
    id: "2"
  },

  {
    firstName: "Tony",
    lastName: "Stark",
    id: "3"
  }
];

Object.keys(users).length //3

鉴于上面的示例,我如何输出9的长度来检索对象数组上的所有属性?

这可以使用reduce方法来完成吗?预先感谢。

1 个答案:

答案 0 :(得分:5)

是的,reduce是合适的方法-在每次迭代中,将当前对象的键数添加到累加器中,以求和每个项的keys

  const users = [
  {
    firstName: "Bruce",
    lastName: "Wayne",
    id: "1",
  },

  {
    firstName: "Peter",
    lastName: "Parker",
    id: "2"
  },

  {
    firstName: "Tony",
    lastName: "Stark",
    id: "3"
  }
];

const totalProps = users.reduce((a, obj) => a + Object.keys(obj).length, 0);
console.log(totalProps);