1、获取两个数组的不同元素
function getDiff(arr1, arr2) {
return arr1.concat(arr2).filter((item, index, arr) =>
arr.indexOf(item) === arr.lastIndexOf(item)
)
}
// eg:
var a1 = [1, 2, 3, 4, 5],
a2 = [2, 3, 4, 5, 6];
getDiff(a1, a2); // [1, 6]
concat 用来合并两个数组,也可以写成[...arr1, ...arr2]; filter用来过滤数组,参数arr表示合并后的数组;indexOf表示元素第一次出现的位置,lastIndexOf表示元素最后一次出现的位置。
2、获取两个数组的相同元素
function getSame(arr1, arr2) {
return [...new Set(arr1)].filter(item =>
arr2.includes(item)
)
}
// eg:
var a1 = [1, 2, 3, 3, 4, 5],
a2 = [2, 3, 4, 5, 6];
getSame(a1, a2); // [2, 3, 4, 5]
Set方法是es6新增的方法,用来去重;以上方法通过过滤数组a1,遍历每一项,找到a2和a1的交集。