javascript - 提取数组的键 - 没有重复项

标签 javascript arrays

我正在尝试创建一个循环,以输出数组中的键 - 数组中的所有对象都具有相同的键,所以我只需要该键一次。

但是我不知道该怎么做,我似乎只能多次确定每个对象的键!看起来它循环遍历了数组中的每个对象。

如何一次性提取数组的key!

谢谢。

我的代码如下:

   var obj = array

   var newAryk = []
   Object.keys(obj).forEach(function (k) {
      newAryk.push(k)
   });

我试图让输出看起来像:

['Color', 'qty']

我的数组看起来像:

    [
      {
        Color: 'Green',
        qty: '3',
      },
      {
        Color: 'Pink',
        qty: '3',
      },
      {
        Color: 'Purple',
        qty: '3',
      }
    ]

最佳答案

如果所有对象都有相同的键,那么就使用Object.keys()在第一个数组元素上。

var keys = Object.keys(arr[0]);

如果对象有不同的键,则使用 Set() .

var keys = new Set();

arr.forEach(obj => {
  let objKeys = Object.keys(obj);
  objKeys.forEach(key => keys.add(key));
});

// Convert from Set to Array.
keys = Array.from(keys); 

实例:

var arr = [{ Color: 'Green', qty: '3', }, { Color: 'Pink', qty: '3', }, { Color: 'Purple', qty: '3', } ];

var keys = new Set();

arr.forEach(obj => {
  let objKeys = Object.keys(obj);
  objKeys.forEach(key => keys.add(key));
});

// Convert from Set to Array.
keys = Array.from(keys);

console.log(keys);

关于javascript - 提取数组的键 - 没有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57914373/

相关文章:

javascript - ng-pattern 是否错误不允许触发工具提示

javascript - 动态谷歌图表配置

javascript - 使用 jQuery 获取下拉菜单的值

javascript - AngularJs 中的数组映射

java - 设置多项式的结构

javascript - 分配给变量的函数返回未定义

javascript - Grunt 由于警告而中止

c++ - 字符 "Expression Must Have A Class Type"

java - 在嵌套循环后填充数组

c++ - 在 O(log n) 时间复杂度中查找排序数组中的多数元素