四时宝库

程序员的知识宝库

碎片时间学编程「252]:合并对象数组


合并对象数组


组合两个对象数组,使用指定的键来匹配对象。


将 Array.prototype.reduce() 方法与对象累加器结合使用,以根据给定的 prop 组合两个数组中的所有对象。


使用 Object.values() 方法将生成的对象转换为数组并将其返回。


JavaScript

const combine = (a, b, prop) =>
  Object.values(
    [...a, ...b].reduce((acc, v) => {
      if (v[prop])
        acc[v[prop]] = acc[v[prop]]
          ? { ...acc[v[prop]], ...v }
          : { ...v };
      return acc;
    }, {})
  );


示例:

 const x = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Maria' }
];
const y = [
  { id: 1, age: 28 },
  { id: 3, age: 26 },
  { age: 3}
];
combine(x, y, 'id');
// [
//  { id: 1, name: 'John', age: 28 },
//  { id: 2, name: 'Maria' },
//  { id: 3, age: 26 }
// ]


更多内容请访问我的网站:https://www.icoderoad.com

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接