xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js auto merge objects in array

js auto merge objects in array

Object.assign({}, obj1, obj2);

Object.assign([], arr1, arr2);


arr1 = new Array({name: "lang", value: "English"},  {name: "age", value: "18"});
(2) [{…}, {…}]

arr2 = new Array({name : "childs", value: '5'},  {name: "lang", value: "German"});
(2) [{…}, {…}]


arr1 = [{name: "lang", value: "English"},  {name: "age", value: "18"}];

arr2 = [{name : "childs", value: '5'},  {name: "lang", value: "German"}];


[...arr1, ...arr2]
(4) [{…}, {…}, {…}, {…}]0: {name: "lang", value: "English"}1: {name: "age", value: "18"}2: {name: "childs", value: "5"}3: {name: "lang", value: "German"}length: 4__proto__: Array(0)

map = new Map();
Map(0) {}

for(obj of [...arr1, ...arr2]) {
  if(!map.has(obj.name)) {
    map.set(obj.name, obj);
  } else {
    map.set(obj.name, {
      ...map.get(obj.name),
      ...obj,
    });
  }
}
Map(3) {"childs" => {…}, "lang" => {…}, "age" => {…}}[[Entries]]0: {"childs" => Object}1: {"lang" => Object}2: {"age" => Object}size: (...)__proto__: Map

arr4 = map.values();
MapIterator {{…}, {…}, {…}}

arr4 = [...map.values()];
(3) [{…}, {…}, {…}]0: {name: "childs", value: "5"}1: {name: "lang", value: "German"}2: {name: "age", value: "18"}length: 3__proto__: Array(0)


refs

https://stackoverflow.com/questions/7146217/merge-2-arrays-of-objects/41919138

https://www.samanthaming.com/tidbits/49-2-ways-to-merge-arrays/

https://reactgo.com/javascript-merge-array-objects-key/

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#array_literals



©xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2021-03-23 18:35  xgqfrms  阅读(52)  评论(0编辑  收藏  举报