假设我有一个对象数组,例如
[{
"firstName": "John",
"lastName": "Doe"
}, {
"firstName": "Anna",
"car": true
}, {
"firstName": "Peter",
"lastName": "Jones"
}]
我想从这个对象数组中获取所有唯一的属性名称,所以结果将是:
[firstName, lastName, car]
我该怎么做:
我可以想象可以用这样的东西来做到这一点:
function getPropertiesNames(obj){
var arr = [];
for(var name in obj) {
if(arr.indexOf(name) != -1) arr.push(name);
}
return arr;
}
为什么我需要它:
我将不得不制作一个包含多个对象的表格。因为每个对象可能有点不同,所以我需要唯一的属性名称。但是,我将在 angularJS 中执行此操作,因此一旦使用循环获取 <th>
的属性名称对我来说是一个糟糕的选择。并再次使用 <tr ng-repeat></tr>
循环显示值。
我想要什么:
是否有一些选项可以在不迭代对象的情况下从对象数组中获取所有唯一的属性名称?也许一些我不知道的 lodash 或内置 JS 函数?
最佳答案
仅使用的解决方案:
var data = [{
"firstName": "John",
"lastName": "Doe"
}, {
"firstName": "Anna",
"car": true
}, {
"firstName": "Peter",
"lastName": "Jones"
}];
var uniqueKeys = Object.keys(data.reduce(function(result, obj) {
return Object.assign(result, obj);
}, {}))
console.log(uniqueKeys);
关于javascript - 从对象数组中获取所有唯一的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248687/