我将转换这个对象数组:
转换成一个更简单、扁平的对象:
我发现使用 Underscore/LoDash 实现的两种最简单的方式如下:
完整的代码已经在JSBin上有文档记录:http://jsbin.com/kovuhu/1/edit?js,console 我已经阅读了许多关于apply/bind/call/assign/reduce/extend的文档,但我仍然无法理解幕后发生了什么。
有人可以帮助我理解这些一行代码背后的神奇技巧吗?
[ { first: { blah: 1, baz: 2 } }, { second: { foo: 1, bar: 2 } }]
转换成一个更简单、扁平的对象:
{
first: {
blah: 1,
baz: 2
},
second: {
foo: 1,
bar: 2
}
}
我发现使用 Underscore/LoDash 实现的两种最简单的方式如下:
// Using reduce and extend
_.reduce(myArray, _.extend)
// Using assign and apply
_.assign.apply(_, myArray);
完整的代码已经在JSBin上有文档记录:http://jsbin.com/kovuhu/1/edit?js,console 我已经阅读了许多关于apply/bind/call/assign/reduce/extend的文档,但我仍然无法理解幕后发生了什么。
有人可以帮助我理解这些一行代码背后的神奇技巧吗?
_.reduce(myArray, _.extend, {})
(可以简化为extend(extend({}, myArray[0]), myArray[1])
)。 - Bergi