我们需要编写一个JavaScript函数,该函数接受三个整数数组,所有整数均按升序排序。然后,该函数应构造并返回一个数组,该数组仅包含所有三个数组中都存在的那些元素。
例如-
如果输入数组是-
const arr1 = [4, 7, 8, 11, 13, 15, 17]; const arr2 = [1, 3, 4, 13, 18]; const arr3 = [2, 4, 7, 8, 9, 10, 13];
那么输出应该是-
const output = [4, 13];
为此的代码将是-
const arr1 = [4, 7, 8, 11, 13, 15, 17];
const arr2 = [1, 3, 4, 13, 18];
const arr3 = [2, 4, 7, 8, 9, 10, 13];
const intersectThree = (arr1 = [], arr2 = [], arr3 = []) => {
let curr1 = 0;
let curr2 = 0;
let curr3 = 0;
const res = [];
while((curr1 < arr1.length) && (curr2 < arr2.length) && (curr3 < arr3.length)){
if((arr1[curr1] === arr2[curr2]) && (arr2[curr2] === arr3[curr3])){
res.push(arr1[curr1]);
curr1++;
curr2++;
curr3++;
}
const max = Math.max(arr1[curr1], arr2[curr2], arr3[curr3]);
if(arr1[curr1] < max){
curr1++;
};
if(arr2[curr2] < max){
curr2++;
};
if(arr3[curr3] < max){
curr3++;
};
};
return res;
};
console.log(intersectThree(arr1, arr2, arr3));输出结果控制台中的输出将是-
[4, 13]