从对象数组中获取对象属性名称数组

Seb*_*ski 1 javascript arrays javascript-objects

我正在寻找与此类似的东西:

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

console.log(Object.getOwnPropertyNames(object1));
// expected output: Array ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

然而在我的例子中我有:

const objectArray1 = [
  { a: 112, b: 322, c: 233 },
  { a: 611, b: 232, c: 331 },
  { a: 132, b: 232, c: 342 }
];
Run Code Online (Sandbox Code Playgroud)

["a", "b", "c"]从中获得最有效的方法是什么?

此外,这可能永远不会发生,但如果其中一个objectArray1对象包含d: 345或缺少键/值对,则需要进行处理。

有任何想法吗?

Cer*_*rus 5

使用和将的所有条目映射objectArray1到对象的键,以获得所有对象中所有键的平面数组。 然后将其传递给 a以提取唯一值。可以使用扩展运算符将其转换回数组:Object.keysflatMap
SetSet...

const objectArray1 = [
  { a: 112, b: 322, c: 233 },
  { a: 611, b: 232, c: 331 },
  { a: 132, b: 232, c: 342 },
  { a: 132, b: 232, c: 342, d: 532 }
];

const keys = [
  ...new Set(objectArray1.flatMap(Object.keys))
];

console.log(keys)
Run Code Online (Sandbox Code Playgroud)