我正在努力解决黑客排行榜上的 "一笔很大的钱 "挑战。https:/www.hackerrank.comchallengesa-very-big-sumproblem
在这里,我必须对所给数组中的所有数字进行求和,所以我想出了两种解决方案。
第一个方案
function aVeryBigSum(ar){
let sum = 0;
for(let i = 0; i < ar.length; i++){
sum += i;
}
}
第二种解决方案
function(ar){
let sum = ar.reduce((accumulator, currentValue) => {
accumulator + currentValue;
});}
但是没有一个能用,我不知道为什么,我想也许我没有按照Hacker Rank的要求来写,但是我不确定
sum += i;
应该是 sum += ar[i];
同时返回金额
function aVeryBigSum(ar){
let sum = 0;
for(let i = 0; i < ar.length; i++){
sum += ar[i];
}
return sum;
}
此外,减速器的功能应该是像
function a(ar){
let sum = (accumulator, currentValue) => accumulator + currentValue;
return ar.reduce(sum);
}
在你的第一个解决方案中,你应该对数组进行索引,而不是仅仅将索引相加。
function aVeryBigSum(ar){
let sum = 0;
for(let i = 0; i < ar.length; i++){
sum += ar[i];
}
return sum;
}
用reduce对数组进行加总
function aVeryBigSum(ar){
return ar.reduce((a, b) => a + b, 0);
}
另外,注意你应该在函数中返回值。 虽然这对小数组有效,但你应该考虑一下如果和得到的值是: 很大. (见 笔记 HackerRank上的一节)。)