我正在尝试创建一个循环,以输出数组中的键 - 数组中的所有对象都具有相同的键,所以我想要该键一次。但是我无法弄清楚如何做到这一点,我似乎只能多次精确每个对象的键!看起来它遍历数组中的每个对象。我怎样才能一次提取数组的键!谢谢。我的代码看起来像: 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);
添加回答
举报
0/150
提交
取消