javascript – 在无组织的对象数组中获取所有键的有效方法

我想得到一个对象数组中的所有键.最初我只是抓住了数组中的第一个对象并使用了:
var keys = Object.keys(tableData[0]);

但是当我仔细观察数据时,我注意到第一行没有包含所有需要的键.在下面的示例中,第三个项目包含所有键,但您可能遇到了获取所有键需要组合多个对象的情况.

var tableData = [
  { first:"jeff",last:"doe",phone: "2891" },{ first:"Sarah",phone:"this",county: "usa" }
  { first:"bob",last:"brown",county: "usa",phone: "23211" }
];

如何获得大规模高效的对象数组中的所有唯一键?

解决方法

您可以使用 reduce()Set来获得所需的结果.
var array = [
  { first:"jeff",county: "usa" },{ first:"bob",phone: "23211" }
];

var keys = [...new Set(array.reduce(function(r,e) {
  r = r.concat(Object.keys(e));
  return r;
},[]))];

console.log(keys)

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...