【问题标题】:Getting key of each object inside array of objects into an array: Javascript将对象数组中每个对象的键放入数组中:Javascript
【发布时间】:2019-07-19 09:24:09
【问题描述】:

我有一个格式如下的对象

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);

【问题讨论】:

    标签: javascript arrays ecmascript-6


    【解决方案1】:

    通过扩散到Object.assign()合并成单个对象,然后获取key:

    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);

    【讨论】:

    • 喜欢第二个最好的
    【解决方案2】:

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

    var obj = [{
      "a": 1
    }, {
      "b": 2
    }, {
      "c": 3
    }];
    
    const result = obj.map(inner => Object.keys(inner)[0]);
    console.log(result);

    【讨论】:

      【解决方案3】:

      你可以使用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);

      【讨论】:

        【解决方案4】:

        您可以简单地使用.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)
                });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-24
          • 2023-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多