我试图创建一个求和函数。当我通过两个不同的数组(具有相同的值)运行它时,它会给我不同的结果。我无法确切地告诉我哪里做错了。当我使用'范围'生成数组时,似乎功能,它循环两次。
--name

任何帮助将不胜感激。谢谢!
答案 0 :(得分:4)
原因是var myArr = [];
是一个全局变量。因此,第一次控制台尝试中的推送元素将一直存在,直到它们被清除。您可以在函数中使用局部变量。
var tempArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function range(start, end) {
var myArr = [];
for (i = start; i <= end; i++) {
myArr.push(start);
start = start + 1;
}
return myArr;
}
function sum(arr) {
var sumArr = 0;
for (i = 0; i < arr.length; i++) {
sumArr = sumArr + arr[i];
//console.log(sumArr);
}
return sumArr;
}
console.log(range(1, 10)); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
console.log(tempArr); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
console.log(sum(range(1, 10))); //55
console.log(sum(tempArr)); //55
答案 1 :(得分:0)