JS求两个数组的交集 (假设数组已经经过排序)

  //假定数组是已经经过排序的
        function arrayIntersection(a, b){  
                var ai=0, bi=0;  //定义两个全新的索引
                var result = new Array(); //创建一个新的数组,来存放交集
                while( ai < a.length && bi < b.length ){
                    if (a[ai] < b[bi] ){
                        ai++;  //a索引增加1
                    }else if (a[ai] > b[bi] ){
                         bi++; //b索引增加1
                    }else{
                    result.push(a[ai]);  //将交集存到新数组中
                    ai++;
                    bi++;
                    }
                }
                return result;
         }
        console.log(arrayIntersection([1,2,3],[2,3,4,5,6]));//[2,3]

 

posted @ 2020-08-08 16:47  讲故事的人zz  阅读(506)  评论(0)    收藏  举报