Sum All Numbers in a Range
生活随笔
收集整理的這篇文章主要介紹了
Sum All Numbers in a Range
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
我們會傳遞給你一個包含兩個數字的數組。返回這兩個數字和它們之間所有數字的和。 最小的數字并非總在最前面。
function sumAll(arr) {var a=arr.sort();var x=Math.max.apply(null,a);var y=Math.min.apply(null,a);var sum=x+y;for(i=y+1;i<x;i++){arr.push(i);}return arr.reduce(function(previousValue, currentValue, index, array){return previousValue + currentValue; }); } sumAll([1, 4]);用到的知識:
arr.reduce(callback,[initialValue])
- 概述
- reduce()?方法接收一個函數作為累加器(accumulator),數組中的每個值(從左到右)開始合并,最終為一個值。
- 語法
- arr.reduce(callback,[initialValue])
- 參數
- callback
- 執行數組中每個值的函數,包含四個參數
- previousValue
- 上一次調用回調返回的值,或者是提供的初始值(initialValue)
- currentValue
- 數組中當前被處理的元素
- index
- 當前元素在數組中的索引
- array
- 調用 reduce 的數組
- initialValue
- 作為第一次調用 callback 的第一個參數。
- 描述
- reduce 為數組中的每一個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數:初始值(或者上一次回調函數的返回值),當前元素值,當前索引,調用 reduce 的數組。
- 回調函數第一次執行時,previousValue?和?currentValue?的取值有兩種情況,如果?initialValue 在調用 reduce 時被提供,那么第一個 previousValue 等于 initialValue ,并且currentValue 等于數組中的第一個值;如果initialValue 未被提供,那么previousValue 等于數組中的第一個值,currentValue等于數組中的第二個值。
- 如果數組為空并且沒有提供initialValue, 會拋出TypeError?。如果數組僅有一個元素(無論位置如何)并且沒有提供initialValue, 或者有提供initialValue但是數組為空,那么此唯一值將被返回并且callback不會被執行。
- 例如執行下面的代碼
[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){ return previousValue + currentValue; });
取最大值: Math.max(null,arr) ES6之后有一個新的方法:Math.max(...arr)轉載于:https://my.oschina.net/mfeng/blog/752938
總結
以上是生活随笔為你收集整理的Sum All Numbers in a Range的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NetApp】安装Cmode模拟器时,
- 下一篇: LVS+keepalived构建PXC高