我有array
个对象,想要通过下划线获取唯一键,我该怎么做?
Array[ Object{a: 1, b: 2}, Object{b: 3, c: 4, d: 5} ]
我想得到:
Array[ "a", "b", "c", "d" ]
答案 0 :(得分:6)
另一种选择:
keys = _.keys(_.extend.apply({}, array))
答案 1 :(得分:3)
答案 2 :(得分:2)
纯ES6解决方案。
Object.keys({...objA, ...objB});
<强>背景强>
它采用项目的属性(objA
,objB
)和“解包”它们,然后将这些属性组合到一个对象中(请参阅{ }
)。然后我们取结果的关键。
TypeScript转换输出(ES5):
// Helper function
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
// Compile output
// Note that it's NOT lodash or underscore but the helper function from above
Object.keys(__assign({}, objA, objB));
答案 3 :(得分:0)
使用_.keys()获取对象中的所有键
var result = [];
_.each(obj, function(prop){
var temp = _.keys(prop);
_.each(temp, function(value){
result.push(value);
})
});
console.log(result);
_。contains([],value)检查值是否在数组中退出并返回'true'(如果存在); 'false',否则。以下是用于消除重复键,然后将键推送到结果数组。
var result = [];
_.each(obj, function(prop){
var temp = _.keys(prop);
_.each(temp, function(value){
var flag = _.contains(result, value);
if(!flag){
result.push(value);
}
});
});
console.log(result);