为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕婉清6462132 2021-10-14 16:46:42
我正在尝试创建一个循环,以输出数组中的键 - 数组中的所有对象都具有相同的键,所以我想要该键一次。但是我无法弄清楚如何做到这一点,我似乎只能多次精确每个对象的键!看起来它遍历数组中的每个对象。我怎样才能一次提取数组的键!谢谢。我的代码看起来像:   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',      }    ]
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

如果所有对象都具有相同的键,则只需在第一个数组元素上使用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);


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信