jyo*_*006 2 javascript sorting reduce
function sumAll(arr) {
var list = [];
for (var i = arr[0]; i <= arr[1]; i++) {
list.push(i);
}
var total = list.reduce(function(a, b) {
return a + b;
});
return total;
}
sumAll([10, 5]);
//sumAll([1, 4]); //returns 10
//sumAll([5, 10]); //returns 45
//sumAll([4, 1]);
Run Code Online (Sandbox Code Playgroud)
我需要对给定参数之间的每个数字求和.为sumAll([1, 4])和sumAll([5, 10]).代码将通过,因为它会在两个参数之间创建所有数字并添加它.但是,对于sumAll([10, 5])和sumAll([4, 1]),因为更大的数字是第一个参数,我相信它不会运行var list.我尝试.sort()在两者之间使用方法,以便对数字进行排序但无法使其工作.我如何使用Math.min()和Math.max()使用此代码?
以下是我使用m=arr[0]和n=arr[1]执行此操作的方法:
1+2+...+n = n(n+1)/2
Run Code Online (Sandbox Code Playgroud)
其他人发布代码使用Math.min; IMO Math.max和arr[0] < arr[0] ? arr[0] : arr[1]函数使得更可读的代码比?:运营商.
还有两美分:我相信根本不做一件事会更简单Math.min; 而是说Math.max并增加它.像这样:
m+(m+1)+...+n
Run Code Online (Sandbox Code Playgroud)
这是数学方程式派上用场的时代之一。查看以下代码:
function sumAll(arr) {
max=Math.max(arr[0],arr[1]);
min=Math.min(arr[0],arr[1]);
return (max*(max+1)/2)-((min-1)*min/2);
}
Run Code Online (Sandbox Code Playgroud)
逻辑很简单,对吧?:)
| 归档时间: |
|
| 查看次数: |
10589 次 |
| 最近记录: |