javascript - 使用 Javascript 的范围总和

标签 javascript

我希望执行一个输出为:

console.log(range(1, 10));  
// → [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
console.log(range(5, 2, -1));  
// → [5, 4, 3, 2]  
console.log(sum(range(1, 10)));  
// → 55  

我收到 array.length 的错误。请查找以下代码:

var array = [];

function range (arr){  
    var lower = Math.min(arr[0],arr[1]);    
    var upper = Math.max(arr[0],arr[1]);  

    for (var i=lower;i<=upper;i++){  
        array.push(i);  
    }  
}  

function sum(array){  
    for(var i=0;i < array.length;i++){  
        var total = total+array[i];  
    }  
}  

console.log(sum(range(1, 10)));  

我是初学者,请帮忙。 谢谢。

最佳答案

这里有几个问题:

1.) 您没有在 range 函数中返回任何内容。您需要返回填充的数组。

2.) 您没有在 sum 函数调用中正确传递数组。

3.) 您没有在 sum 函数调用中返回任何内容。

如果不返回任何值,您就不会让您的代码块相互协作

var array = [];

function range (arr){  
    var lower = Math.min(arr[0],arr[1]);    
    var upper = Math.max(arr[0],arr[1]);  

    for (var i=lower;i<=upper;i++){  
        array.push(i);  
    }
    return array; // return the array to be used in the sum function
}  

function sum(array){  
    var total = 0; // need to create a variable outside the loop scope
    for(var i in array){  
       total = total+array[i];  
    }
    return total;
}  

console.log(sum(range([1,10]))); // pass the array correctly 

请注意,您需要在 sum 函数内的 for-loop 范围之外设置 total 变量。这样你就可以返回最终值。否则,它将返回 undefined

参见 fiddle :https://jsfiddle.net/udyhb95a/

关于javascript - 使用 Javascript 的范围总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36718158/

相关文章:

JavaScript - 使用 es6 从对象数组中计算和删除重复项

javascript - navigator.network.connection.type 返回 null 而不是 Connection.NONE

javascript - tinyMCE 粘贴为单词

javascript - 带有循环javascript的数字范围

javascript - 创建加载外部 html 文件的自定义 Html 标记

javascript - 如何使 addEventListener 'click' 在具有相同类的两个菜单项上工作

javascript - AntD 自动完成下拉菜单默认打开焦点,我该如何防止它?

javascript - JS 日期对象解析不正确

javascript - 使用 jquery 使用变量更改点击状态

javascript - React 路由器在 aws s3 存储桶中不起作用