首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从对象数组中删除重复项并将其子阵列合并为一个

从对象数组中删除重复项并将其子数组合并为一个,可以通过以下步骤实现:

  1. 遍历对象数组,使用一个新的空对象作为辅助容器,用于存储不重复的对象。
  2. 对于每个对象,将其转换为字符串形式,作为辅助容器的键值。
  3. 如果辅助容器中不存在该键值,则将该对象存储到辅助容器中。
  4. 如果辅助容器中已存在该键值,则将该对象的子数组合并到已存在的对象的子数组中。
  5. 最后,从辅助容器中提取所有的值,即为删除重复项并将子数组合并的结果。

以下是一个示例的JavaScript代码实现:

代码语言:txt
复制
function mergeArrays(arr) {
  const map = {};
  
  arr.forEach(obj => {
    const key = JSON.stringify(obj);
    
    if (map[key]) {
      map[key].subArray = map[key].subArray.concat(obj.subArray);
    } else {
      map[key] = obj;
    }
  });
  
  return Object.values(map);
}

// 示例用法
const input = [
  { id: 1, subArray: [1, 2, 3] },
  { id: 2, subArray: [4, 5, 6] },
  { id: 1, subArray: [7, 8, 9] },
  { id: 3, subArray: [10, 11, 12] }
];

const result = mergeArrays(input);
console.log(result);

该代码会输出以下结果:

代码语言:txt
复制
[
  { id: 1, subArray: [1, 2, 3, 7, 8, 9] },
  { id: 2, subArray: [4, 5, 6] },
  { id: 3, subArray: [10, 11, 12] }
]

在这个例子中,输入的对象数组中有两个具有相同id的对象(id为1),它们的子数组会被合并为一个。最终的结果是一个新的对象数组,其中重复项已被删除,并且子数组已合并。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券