Array.reduceRight()由右至左 累計值處理
- 詳細內容
- 分類:Javascript
- 發佈:2013-03-11, 週一 23:33
- 點擊數:2137
Javascript的Array.reduceRight()方法:
Array.reduceRight()方法的參數是一個回呼函式,有4個傳入參數和一個傳回值,reduceRight()方法會由右至左的為陣列中的每個元素呼叫一次回呼函式,並將回呼函式的傳回值當作下一次呼叫回呼函式的傳入參數。reduceRight()方法方法定義在ECMA-262第五版中,可能會有些瀏覽器不支援此方法。若要確定在所有瀏覽器中都能正確的執行,可以在原型中自行定義此方法。若陣列中有未給定初始值的元素,那reduceRight()方法會跳過該元素。
Array.reduceRight()的語法:
array.reduceRight( callbackfn [ , initialValue] )
callbackfn:回呼函式,reduceRight()方法利用此函式來處理陣列中的元素,
callbackfn有四個傳入值previousValue、currentValue、index、array,
previousValue:前一次callbackfn的傳回值。
currentValue:當前的元素值。
index :當前元素索引。
array:目前處理中的陣列。
傳回值:回呼函式會有一傳回值,此傳回值當成下一次callbackfn()的previousValue參數。
initialValue:初始值,此參數可以省略,如果是有設定,那麼第一次呼叫callbackfn()的previousValue參數會等於這個初始值,currentValue會是陣列的第最後一個有值的元素,若是沒有設定initialValue,那第一次呼叫callbackfn()時,previousValue參數會等於陣列的第倒數一個有值的元素(右邊算過來第一個),currentValue會是陣列的倒數第二個有值的元素(右邊算過來第二個)。
Array.reduceRight()的範例:
從10加到1,未給定初始值:
Array.reduceRight()的範例輸出:
第1次呼叫add:previousValue=10, currentValue=9, index=8, 傳回值=19
第2次呼叫add:previousValue=19, currentValue=8, index=7, 傳回值=27
第3次呼叫add:previousValue=27, currentValue=7, index=6, 傳回值=34
第4次呼叫add:previousValue=34, currentValue=6, index=5, 傳回值=40
第5次呼叫add:previousValue=40, currentValue=5, index=4, 傳回值=45
第6次呼叫add:previousValue=45, currentValue=4, index=3, 傳回值=49
第7次呼叫add:previousValue=49, currentValue=3, index=2, 傳回值=52
第8次呼叫add:previousValue=52, currentValue=2, index=1, 傳回值=54
第9次呼叫add:previousValue=54, currentValue=1, index=0, 傳回值=55
After Array.reduce():55
在原型中新增Array.reduceRight()方法:
Array.reduceRight()方法是ECMS-262中的標準方法,但並非所有瀏覽器都支援,為確保在所有瀏覽器中都能正確執行,可自行在原型中定義該方法。下面是來自MDN中Array reduceRight method的程式,將其放入<script>的開頭:
按個讚!~支持本站!~
你可能會有興趣的文章