我正在尝试创建一个循环,以输出数组中的键 - 数组中的所有对象都具有相同的键,所以我只需要该键一次。
但是我不知道该怎么做,我似乎只能多次确定每个对象的键!看起来它循环遍历了数组中的每个对象。
如何一次性提取数组的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/