//こういう配列を
var array = [{"hello":"aaa"},{"world":"bbb"},{"test":"ccc"},{"hoge":"ddd"}];
//こうしたい
console.log(flattened);
-> {hello: "aaa", world: "bbb", test: "ccc", hoge: "ddd"}
reduceを使って簡易的に行うことができる。
(ただしこれだと、入れ子には対応できない)
const flattened = array.reduce((acc, val) =>{
Object.keys(val).forEach(key => acc[key] = val[key]);
return acc;
}, {});
配列に同名のキーがある場合は上書きされるので注意
//同名のキーがある場合
var array = [{"hello":"aaa"},{"world":"bbb"},{"test":"ccc"},{"hoge":"ddd"}, {"world":123}];
//worldが上書きされてしまっている
console.log(flattened);
-> {hello: "aaa", world: 123, test: "ccc", hoge: "ddd"}