JavaScript - 如何将多个嵌套数组中的所有对象放入一个新的唯一对象数组

肯尼权力

我有一个名为packages. 每个对象都有一个称为modules另一个对象数组的属性每个modules数组中的每个对象都有一个唯一的 ID。我想modules使用 ID 将所有数组中的每个唯一对象放入一个数组中。

packages = [
  { id: 1, modules:[{ id: 1, name: 'module1' }, { id: 2, name: 'module2' }]},
  { id: 2, modules:[{ id: 1, name: 'module1' }, { id: 3, name: 'module3' }]},
  { id: 3, modules:[{ id: 2, name: 'module2' }, { id: 4, name: 'module4' }]} 
];

我需要的结果是:

allModules = [
  { id: 1, name: 'module1' },
  { id: 2, name: 'module2' },
  { id: 3, name: 'module3' },
  { id: 4, name: 'module4' }
];

我使用的是 TypeScript,但不是 ES6。

回旋

您可以使用 Array 方法,如reducefilter来获取您的独特模块列表:

var packages = [
  { id: 1, modules:[{ id: 1, name: 'module1' }, { id: 2, name: 'module2' }]},
  { id: 2, modules:[{ id: 1, name: 'module1' }, { id: 3, name: 'module3' }]},
  { id: 3, modules:[{ id: 2, name: 'module2' }, { id: 4, name: 'module4' }]} 
]

var result = packages.reduce(function (a, e) {
  return a.concat(e.modules)
}, []).filter(function (e) {
  return !this[e.id] && (this[e.id] = true)
}, {})

console.log(result)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一个如何删除对象中JavaScript中不存在于数组中的所有键?

JavaScript中的唯一对象标识符

在JavaScript中执行计算后,如何在嵌套数组中获取所有对象?

如何在Javascript中的对象数组的最后一个对象之后追加几个新对象?

javascript-根据多个属性在数组中查找唯一对象

javascript-如何从多个数组中获得一个随机对象,并且在Javascript中具有几率?

仅使用JavaScript将重复对象的价格添加到数组中的第一个唯一对象

如何总结一个嵌套的Javascript对象数组的所有叶节点?

Javascript-如何将多个对象添加到一个空数组

如何将类中的所有对象放入一个数组javascript中?

在嵌套在另一个数组中的数组中返回具有特定key:value对的对象-Javascript

Javascript-将数组项(包括它们的重复项)放入一个新数组中

JavaScript:创建将嵌套数组中的数据转换为具有多个对象的一个数组的函数

JavaScript:如何将具有嵌套数组的对象映射到表以进行React

通过检查带有对象的另一个嵌套数组来过滤带有对象的嵌套数组-JavaScript

将所有对象对放入一个数组(Javascript)

如何使用javascript执行对象的相同键值的加法并从对象数组返回唯一对象?

如何将多个对象合并到jQuery / javascript中的一个对象

如何将此JavaScript数组对象附加到另一个JavaScript数组对象?

Javascript对象。如何创建一个在同一对象内调用函数的按钮

收集JavaScript数组中的唯一对象

JavaScript-在带有计数的对象数组中查找唯一值,并创建一个新的对象数组

Javascript从对象创建唯一对象的数组

如何将 .geojson 文件转换为带有嵌套数组的 JavaScript 对象?

将 Javascript 对象数组转换为一个对象

Javascript在对象数组中查找所有出现的名称并创建新的唯一数组

如何使用一个公共字段提取数据并在javascript中制作嵌套数组

使用javascript es6从包含唯一ID和嵌套数组的多个对象数组中获取公共数据

基于Javascript中的属性值从数组对象中获取唯一对象