双foreach循环如何优化精简

      const ids = []
      this.secondaryList.forEach((item) => {
        item.secondaryDP.forEach((second) => {
          if (!second.checked) {
            ids.push(...second.list)
          }
        })
      })
   

这几句代码如何精简?

GPT是这样回答的

const ids = this.secondaryList.reduce((acc, item) => {
  return acc.concat(item.secondaryDP.filter(second => !second.checked).map(second => second.list))
}, [])

上述代码使用了 Array.prototype.reduce 和 Array.prototype.filter 方法来简化代码。

Array.prototype.reduce 方法可以对数组中的每个元素执行给定的函数,并将其结果汇总为单个值。
Array.prototype.filter 方法可以创建一个新的数组,其中的元素经过测试后保留下来。
通过使用这两个方法,我们可以避免使用多层循环和 forEach 方法,使代码更加简洁。
不知道对你是否有帮助