//假定数组是已经经过排序的 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]