關於reduce的引數問題

2022-05-07 04:48:06 字數 776 閱讀 4085

ecmascript 5還新增了兩個縮小陣列的方法: reduce() 和 reduceright() 。這兩個方法都會迭代陣列的所有項,然後構建乙個最終返回的值。其中, reduce() 方法從陣列的第一項開始,逐個遍歷到最後。而 reduceright() 則從陣列的最後一項開始,向前遍歷到第一項。

這兩個方法都接收兩個引數:乙個在每一項上呼叫的函式和(可選的)作為縮小基礎的初始值。傳給 reduce() 和 reduceright() 的函式接收4個引數:前乙個值、當前值、項的索引和陣列物件。這個函式返回的任何值都會作為第乙個引數自動傳給下一項。第一次迭代發生在陣列的第二項上,因此第乙個引數是陣列的第一項,第二引數就是陣列的第二項。

使用 reduce() 方法可以執行求陣列中所有值之和的操作,比如:

1

var values = [1,2,3,4,5];

2var sum = values.reduce(function

(prev, cur, index, array));

5 alert(sum); //

15

第一次執行**函式:1 + 2

第二次執行**函式:3 + 3

第三次執行**函式:6 + 4

第四次執行**函式:10 + 5

說明第一次執行**函式, prev 是1, cur 是2。第二次, prev 是3(1加2的結果), cur 是3(陣列的第三項)。這個過程會持續到把陣列中的每一項都訪問一遍,最後返回結果。

reduceright() 的作用類似,只不過方向相反而已。

關於reduce的數量設定問題

reduce數量究竟多少是適合的。目前測試認為reduce數量約等於cluster中datanode的總cores的一半比較合適,比如cluster中有32臺datanode,每台8 core,那麼reduce設定為128速度最快。因為每台機器8 core,4個作map,4個作reduce計算,正好...

關於reduce的使用方法

var rowdata var arr rowdata.reduce function o,v,i else return o console.log arr 返回的結果 例子 得到字串資料 str1 str2 str3 需要獲取使用者選中數的id,拼接成字串的格式傳到後台,原始的做法是在後面加乙個...

關於中文引數亂碼的問題

解決方法 1.客戶端編碼 jsp頁面 var username encodeuri encodeuri 中文名稱 2 伺服器端解碼 action中 string username urldecoder.decode username null?username,utf 8 encodeuri 方法 ...