求两个数组的交集js实现

var intersect = function(nums1, nums2) {

    let i = j = 0,
        len1 = nums1.length,
        len2 = nums2.length,
        newArr = [];
    
    if( len1 === 0 || len2 === 0 ){
        return newArr;
    }
    
    nums1.sort(function(a,b){
        return a - b;
    });
    nums2.sort(function(a,b){
        return a - b;
    });
    
    while( i < len1 || j < len2 ){
        if( nums1[i] > nums2[j] ){
            j ++;
        }else if( nums1[i] < nums2[j] ){
            i ++;
        }else{
            
            if(nums1[i] === nums2[j]){
                newArr.push( nums1[i] );
            }

            if( i < len1 - 1 ){
                i ++;
            }else{
                break;
            }

            if( j < len2 - 1 ){
                j ++;
            }else{
                break;
            }
        }        
    } 
    return newArr;
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容