freecodecamp 算法挑战。我无法确定函数中的哪一点返回多个值。正确的返回值应该是10。我在这个函数中打印出的console.log显示了三个值,中间的那个是正确的值。我如何定位这个特定值并忽略其他值? https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-numbers-in-a-range
function sumAll(arr) {
for (let i = 0; i < arr.length; i++){
if (arr[i] != arr[arr.length -1]){
let num = arr[i] + 1;
arr.splice(arr[i], 0, num);
console.log(arr.reduce(function(sum, value) {
return sum + value;
}, 0));
}
}
}
sumAll([1, 4]);
最佳答案
如果您提取范围实用函数,您可以更轻松地做到这一点。没有命令性
const range = (a,b) => Array(Math.abs(a-b)+1).fill(0).map((_,i) => i+Math.min(a,b))
const sumAll = ([a,b]) => range(a,b).reduce((c,d) => c+d,0)
要准确诊断代码的问题,一个好的开始是它不返回任何内容,它是 console.logging,因此如果您将 console.log
替换为 return
.
关于javascript - 对某个范围内的所有数字求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68554113/