我正在尝试同时比较两个数组并仅记录偶数值。这是我提出的代码,它可以正确记录,但我确定这不是正确的方法。如何改进此代码?
“选择arr1和arr2并仅记录偶数”
const arr1 = [5,8,2,1,5,7,3,4,5,8,1,2,4,8,3,1,4,5];
const arr2 = [15,26,74,12,3,6,9,1,2,5];
for (var i=0; i < arr1.length; i++) {
if ((arr1[i] % 2) === 0) {
console.log(arr1[i]);
}
}
for (var i=0; i < arr2.length; i++) {
if ((arr2[i] % 2) ===0) {
console.log (arr2[i]);
}
}
答案 0 :(得分:0)
Concat你的数组,然后在单个数组上运行代码。
const arr1 = [5, 8, 2, 1, 5, 7, 3, 4, 5, 8, 1, 2, 4, 8, 3, 1, 4, 5];
const arr2 = [15, 26, 74, 12, 3, 6, 9, 1, 2, 5];
const mergedArray = arr1.concat(arr2);
for (var i = 0; i < mergedArray.length; i++) {
if ((mergedArray[i] % 2) === 0) {
console.log(mergedArray[i]);
}
}
答案 1 :(得分:0)
如果不能添加更多空间,您也可以在一个循环中遍历两个数组并检查两者中的偶数。运行两个for循环会更高效,其中第一个来自0 to min(arr1.length, arr2.length)
而第二个来自min(arr1.length, arr2.length) to max(arr2.length,arr1.length)
(当然,您必须检查哪个更高级)。另外,我相信you should go here有关提高正确运行的代码效率的问题。
const arr1 = [5, 8, 2, 1, 5, 7, 3, 4, 5, 8, 1, 2, 4, 8, 3, 1, 4, 5];
const arr2 = [15, 26, 74, 12, 3, 6, 9, 1, 2, 5];
const mx = Math.max(arr1.length, arr2.length);
for (var i = 0; i < mx; i++) {
if ( i < arr1.length && (arr1[i] % 2 === 0)) {
console.log(arr1[i]);
}
if ( i < arr2.length && (arr2[i] % 2 === 0)) {
console.log(arr2[i]);
}
}
&#13;