让我们想象一下,我有一个对象数组,例如:
[{
"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函数我不知道吗?