[英]How to use reduce method within an array to convert multiple Json objects with common key into a single Json object?
[英]Hot to use reduce to convert a array of objects to a single object
我正在嘗試使用reduce或map,但有時候我是一個菜鳥。
我正在嘗試使用此函數從對象返回單個數組。
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }];
var result = obj.reduce((obj, item) => [item.key] = item.value);
console.log(result);
但我總是得到:
未捕獲的TypeError:無法讀取未定義的屬性'Symbol(Symbol.iterator)'
我搜索了很多,但這些例子並沒有幫助我...我認為這很簡單,但1小時后,我什么都沒有。
我想要的是..
[{a: 1}, {b: 2}, {c: 3}] to {a: 1, b: 2, c: 3}
你可以使用Object.assign
和傳播語法...
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }]; console.log(Object.assign({}, ...obj));
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }]; console.log(obj.reduce((r, o) => Object.assign(r, o), {}));
沒有Object.assign
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }]; console.log(obj.reduce((r, o) => (Object.entries(o).forEach(([k, v]) => r[k] = v), r), {}));
ES5
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }]; console.log(obj.reduce(function (r, o) { Object.keys(o).forEach(function (k) { r[k] = o[k]; }); return r; }, {}));
如果你想使用reduce:
var arr = [{ a: 1 }, { b: 2 }, { c: 3 }];
var result = arr.reduce((obj, item) => Object.assign(obj, item), {});
如有疑問,請查看MDN文檔 。
您可以使用reduce以下列方式執行此操作
var obj = [{ a: 1 }, { b: 2 }, { c: 3 }]; var result = obj.reduce((obj, item) => { Object.assign(obj, item) return obj; }, {}); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.