github:https://github.com/Vinson7lhl/MyStudyCode/blob/master/blog/array_intersection.js
首先要有一个讨论前提
(1)数组只能是一维数组
(2)里面的元素也应当是基础类型,如Boolean、Number、String
那么首先举一个例子:
let ar1 = [3,5,6,1,1,2,2,5],
ar2 = [1,5,6,2,4,1,1]
如果用肉眼看很容易看到交集应该是[1,5,6,2,1],注意,这是以ar2逐一匹配ar1得到的结果;可以看出来:两个数组的交集就是两个集合重复的元素,结果是完全有可能发生重复的,比如上面的结果有两个1。而且因为数组是有先后顺序的,所以用哪个数组去匹配对方可能结果是不同的。
我特意现在网上找了几个方法,举例说明
方法1:通过filter过滤器,和includes函数
ar1.filter(item => ar2.includes(item))
假设:
let ar1 = [1,2,1,1,3,5],
ar2 = [0,5,2,1,1];
let result = ar1.filter(item &#