慕婉清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);
添加回答
舉報
0/150
提交
取消