let Obj={};
//給出一個(gè)數(shù)組
var arr = [
{a: 'aa'},
{b: 'bb'},
{c: 'cc'}
]
//生成如下格式
Obj={
a:'aa',
b:'bb',
c:'cc'
}
個(gè)人覺(jué)得可以使用Object.assign()來(lái)合併,不知道有沒(méi)有其他好的方法?
@冴羽 和 @cool_zjy 的方案類似,不過(guò)都是產(chǎn)生的一個(gè)新對(duì)象,按原題意,reduce
的初始值傳入 Obj
代替 {}
就好。前者不需要 ES6 特性,後者需要。
@hsfzxjy 的方法看起來(lái)固然是簡(jiǎn)捷了,但是會(huì)產(chǎn)生好多中間對(duì)象,所以效率應(yīng)該不會(huì)很好。
Object.assign
的方案應(yīng)該是最簡(jiǎn)捷了,當(dāng)然也許 Lodash 函式庫(kù)中能找到一個(gè)更簡(jiǎn)單的 API 來(lái)實(shí)作。
瀉藥。用 ES6 的 Spread Operator 可以更簡(jiǎn)潔,不過(guò)本質(zhì)是一樣的
let arr = [
{a: 'aa'},
{b: 'bb'},
{c: 'cc'}
]
let obj = arr.reduce((x, y) => ({...x, ...y}), {})
console.log(obj)