将对象数组内的每个对象的键获取到数组中:Javascript

时间:2019-07-19 09:24:09

标签: javascript arrays ecmascript-6

我有一个具有以下格式的对象

var obj = [{
  "a": 1
}, {
  "b": 2
}, {
  "c": 3
}];

只想从该对象数组中的每个对象中提取键到新数组中

类似这样的事情: ["a","b","c"]

尝试了以下方法,但不起作用:

var obj = [{
  "a": 1
}, {
  "b": 2
}, {
  "c": 3
}];
let result = obj.map (({ val }) => val)
console.log(result);

4 个答案:

答案 0 :(得分:3)

通过扩展到Object.assign()合并到单个对象,然后获取密钥:

var obj = [{"a":1},{"b":2},{"c":3}];

const result = Object.keys(Object.assign({}, ...obj));
console.log(result);

或将Array.flatMap()Object.keys()一起使用:

var obj = [{"a":1},{"b":2},{"c":3}];

const result = obj.flatMap(Object.keys);
console.log(result);

答案 1 :(得分:1)

我会.map并提取要迭代的对象的Object.keys中的第一项:

var obj = [{
  "a": 1
}, {
  "b": 2
}, {
  "c": 3
}];

const result = obj.map(inner => Object.keys(inner)[0]);
console.log(result);

答案 2 :(得分:1)

您可以使用Object.assignspread(...)运算符来解决此问题

var mainObj = [{"a":1},{"b":2},{"c":3},{"23":1},{"32b":2},{"232c":3}];

const allKeys = Object.keys(Object.assign({}, ...mainObj));
console.log(allKeys);

答案 3 :(得分:1)

您可以简单地使用.map()打开数组,然后使用Object.keys从对象返回键。 请参考我所做的示例。希望对您有帮助

https://www.w3schools.com/code/tryit.asp?filename=G66AEBM9ZJCD

let object1 = [{a:1,b:2,c:3}]
        let final = object1.map(function(object){ 
            return Object.keys(object)
        });