在JavaScript中是否有更有效的方法使用For循环显示两个数组的总和?
我希望最终结果显示“276+351=627”。在使用for循环时,是否有更有效的方法来执行此操作? 这是我在网上发现的一个练习问题,所以我想到了两个数组之后的内容在JavaScript中是否有更有效的方法使用For循环显示两个数组的总和?,javascript,loops,for-loop,Javascript,Loops,For Loop,我希望最终结果显示“276+351=627”。在使用for循环时,是否有更有效的方法来执行此操作? 这是我在网上发现的一个练习问题,所以我想到了两个数组之后的内容 let arr_1 = [3, 5, 22, 5, 7, 2, 45, 75, 89, 21, 2]; let arr_2 = [9, 2, 42, 55, 71, 22, 4, 5, 90, 25, 26]; let sum1 = 0; let sum2 = 0; for (let i = 0; i < arr_
let arr_1 = [3, 5, 22, 5, 7, 2, 45, 75, 89, 21, 2];
let arr_2 = [9, 2, 42, 55, 71, 22, 4, 5, 90, 25, 26];
let sum1 = 0;
let sum2 = 0;
for (let i = 0; i < arr_1.length; i++) {
sum1 += arr_1[i];
}
for (let j = 0; j < arr_2.length; j++) {
sum2 += arr_2[j];
}
let total = sum1 + sum2;
console.log(`${sum1} + ${sum2} = ${total}`);
让arr_1=[3,5,22,5,7,2,45,75,89,21,2];
设arr_2=[9,2,42,55,71,22,4,5,90,25,26];
设sum1=0;
设sum2=0;
for(设i=0;i
该函数允许您以非常短的方式编写:
const arr_1=[3,5,22,5,7,2,45,75,89,21,2],
arr_2=[9,2,42,55,71,22,4,5,90,25,26],
add=arr=>arr.reduce((和,n)=>sum+n),
sum1=相加(arr_1),
sum2=相加(arr_2),
总计=sum1+sum2;
log(`${sum1}+${sum2}=${total}`)代码>如果您阅读MDN文档,有很多方法可以在数组中循环。
其中一种方法是reduce(),它几乎适用于所有浏览器,但我更喜欢使用forEach(),因为它是最古老的proto-on阵列之一。。这是如何做到的
let arr_1 = [3, 5, 22, 5, 7, 2, 45, 75, 89, 21, 2];
let arr_2 = [9, 2, 42, 55, 71, 22, 4, 5, 90, 25, 26];
let sum1 = 0
let sum2 = 0
let total = 0
arr_1.forEach((el) => {
sum1 += el
});
arr_2.forEach((el) => {
sum2 += el
});
total = sum1 + sum2
console.log(`${sum1} + ${sum2} = ${total}`);
jshiddle这样
const
doSum=arr=>arr.reduce((a,c)=>a+c,0)//如果arr为空,则设为零值
,arr_1=[3,5,22,5,7,2,45,75,89,21,2]
,arr_2=[9,2,42,55,71,22,4,5,90,25,26]
,sum1=doSum(arr_1)
,sum2=doSum(arr_2)
,总计=sum1+sum2
;
log(`${sum1}+${sum2}=${total}`)
假设arr\u 1
和arr\u 2
具有相同的长度,则只需要一个循环。这与您将获得的效率(速度/性能)一样:
设sum1=0,sum2=0,
arr_1=[3,5,22,5,7,2,45,75,89,21,2],
arr_2=[9,2,42,55,71,22,4,5,90,25,26];
for(设i=0;i
普通for
循环通常比更高级的循环函数更快,因此您已经拥有了性能最好的循环
您还可以通过循环较大的数组来将其用于不同长度的数组,仍然只对
循环执行一个:
设sum1=0,sum2=0,
arr_1=[3,5,22,5,7,2,45,75,89,21,2,6,40,4],
arr_2=[9,2,42,55,71,22,4,5,90,25,26];
for(设i=0;i
当arr_2
用完时,它将开始输出undefined
。在这种情况下,arr_2[i]| | 0
表达式将使用次值
另一种方法是检查偏移是否存在:
for(设i=0;i
要回答您的问题,没有比这更有效的方法了。使用像reduce
这样的数组方法可能看起来更整洁,但效率不会更高。