如何找出两个数组中相同的元素?

总结:
使用归并思想,此种方法适用于两个数组存在重复元素的情况。

思路:
设置两个数组指针,在相等的时候同时后移。如果不相等,谁小谁++,遍历完任何一个数组,就可以结束了。

let arr1 = [1,5,8,9],
    arr2 = [4,5,1,2];

let findSame = function(arr1,arr2){
    let newArr = [],
        sortArr1 = arr1.sort(),
        sortArr2 = arr2.sort();
    let i = 0, j = 0;
    while ( i < arr1.length && j < arr2.length ) {
        if (arr1[i] == arr2[j]) {
            newArr.push(arr1[i]);
            i++;
            j++;
        } 
        else if (arr1[i] < arr2[j]) i++;
        else j++;
    }
    return newArr;
}
console.log(findSame(arr1,arr2));

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