关于javascript:filter-find的筛选

依据id keys汇合筛选进去,a的后果

let result = []
      let a = [
        { id: 1, desc: '我是1' },
        { id: 2, desc: '我是1' },
        { id: 3, desc: '我是1' },
      ]
      let b = [2, 3]

期待后果

result = [
        { id: 2, desc: '我是1' },
        { id: 3, desc: '我是1' },
      ]

个别是循环套两遍

      a.forEach((itme) => {
        for (let i = 0; i < b.length; i++) {
          const element = b[i]
          if (itme.key === element) {
            this.selectList.push(itme)
          }
        }
      })

能够filter + find;
find如果以后那项不符合条件,返回的是undefined,会被filter当成false,也算一个条件吧:

result = a.filter((v) => {
//顺次返回:undefiend 2 3;filter如果是Undefined的后果,就算false,有值就是true
    console.log(Object.values(b).find((i) => i === v.id)) 
    return Object.values(b).find((i) => i === v.id)
})

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理