javascript - 合并 JavaScript 数组

标签 javascript arrays merge concatenation

我有一个像这样的数组:

[
  32545343: {
    data: [{id: 1}, {id: 2}]
  },
  547347: {
    data: [{id: 1}, {id: 4}]
  },
  95757: {
    data: [{id: 1}, {id: 6}]
  },
]

如何将所有数据数组合并到一个数组中,而不复制具有相同 id 的对象,如下所示:

[{id: 1}, {id: 2}, {id: 4}, {id: 6}]

最佳答案

使用 Set 的解决方案结构

var d = { 32545343: { data: [{ id: 1 }, { id: 2 }] }, 547347: { data: [{ id: 1 }, { id: 4 }] }, 95757: { data: [{ id: 1 }, { id: 6 }] }, };

var set = new Set();

Object.keys(d).forEach(a =>
    d[a].data.forEach(b => set.add(JSON.stringify(b))));

document.write(Array.from(set));

关于javascript - 合并 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105352/

相关文章:

javascript - 将 html.actionLink 添加到 Jquery 数据表

javascript - 无法创建可观察的

javascript - 我可以使用 testacular 来测试不在我本地主机上的网页吗?

javascript - Angular 2 ngrx : how to update an array which is embedded in one the the items of my state array?

arrays - 合并哈希和键同时获得旧值和新值

javascript - 页面内链接重新加载页面

C 字符数组实现

java - 在另一个字符串中搜索字符串数组的最有效方法

GitHub pull 请求显示已经在目标分支中的提交

list - 如何从两个已经排序的列表中创建一个排序列表