我想反转对象数组并合并它们。反转并合并对象数组
before = [{a: 1, b: 2}, {a: 3, b: 4}]
预期的结果:
after = {1: 'a', 2: 'b', 3: 'a', 4: 'b'}
你会怎么做呢?用下划线/ lodash?
我想反转对象数组并合并它们。反转并合并对象数组
before = [{a: 1, b: 2}, {a: 3, b: 4}]
预期的结果:
after = {1: 'a', 2: 'b', 3: 'a', 4: 'b'}
你会怎么做呢?用下划线/ lodash?
以下划线/ lodash:
_.extend.apply(this,_.map(data,_.invert))
var before = [{a: 1, b: 2}, {a: 3, b: 4}];
var after = {};
before.forEach(function(e) {
Object.keys(e).forEach(function(k) {
after[e[k]] = k;
});
});
console.log(after);//{ '1': 'a', '2': 'b', '3': 'a', '4': 'b' }
随着lodash,如果使用链接,你可以把它很多更具可读性。
var before = [{a: 1, b: 2}, {a: 3, b: 4}];
var after = _(before)
.map(_.invert)
.reduce(_.merge);
console.log(after);
// Object {1: "a", 2: "b", 3: "a", 4: "b"}