js 如何快速找出找出两个数组中相同的部分

  const list1 = [1, 2, 2, 3, 3, 4, 5, 6, 9]
  const list2 = [0, 1, 2, 2, 3, 4, 5, 6, 7, 8]

错误写法:

  • list1存在两个数字3,但是list2只有一个3,但是这种写法会把list1的两个3都打印出来了
   const list3 = list1.filter(item => list2.includes(item))
   console.log('list3', list3);//[1, 2, 2, 3, 3, 4, 5, 6]

正确写法

    const list3 = list1.filter(item => {
      const index = list2.indexOf(item)
      if (index !== -1) {
        list2.splice(index, 1)
        return item
      }
    })
    console.log('list3', list3);//[1, 2, 2, 3, 4, 5, 6]

版权声明:本文为weixin_43040026原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。