【发布时间】:2017-01-07 23:45:12
【问题描述】:
假设我有一个对象数组,例如
[{
"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 函数?
【问题讨论】:
标签: javascript angularjs arrays object lodash