如何将值与嵌套数组中的其他对象进行比较?

时间:2018-11-28 22:30:37

标签: javascript arrays nested-loops

如何将嵌套数组值与父对象中的对象进行比较,如果不匹配则删除该对象?我需要遍历整个数组,以便在子级中只剩下与父级“模块”匹配的“模块”。

Here is the image of the console to see my array structure.

for (var i = topicArray.length - 1; i >= 0; i--) {
if (topicArray[i].module !== module)
topicArray.splice(i, 1) }

1 个答案:

答案 0 :(得分:2)

一种选择是遍历每个项目,然后简单地filter()淘汰不匹配的模块:

const data = [
  {
    module: 'A',
    topics: [
      { topic: 'something', module: 'A' },
      { topic: 'something else', module: 'B' }
    ]
  },
  {
    module: 'B',
    topics: [
      { topic: 'something', module: 'A' },
      { topic: 'something else', module: 'B' }
    ]
  }
]
    
data.forEach(item => {
  item.topics = item.topics.filter(topic => item.module === topic.module)
})

console.log(data)