map/reduce

1.map

我們有一個函數(shù) f(x)=x*x,要把這個函數(shù)作用在一個數(shù)組 [1, 2, 3, 4, 5, 6, 7, 8, 9] 上,就可以用 map() 實現(xiàn)如下:

function pow(x) {
    return x * x;
}

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]

map() 方法是定義在 JavaScript 的 Array 中的,我們調(diào)用 Array 的 map() 方法,傳入我們自己的函數(shù),就會得到了一個新的 Array。

再舉一例子,把 Array 的所有數(shù)字轉(zhuǎn)為字符串:

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']




2.reduce

Array 的 reduce() 把一個函數(shù)作用在這個 Array 的 [x1, x2, x3...] 上,這個函數(shù)必須接收兩個參數(shù),reduce() 把結(jié)果繼續(xù)和序列的下一個元素做累積計算,其效果就是:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

比方說對一個 Array 求和,就可以用 reduce 實現(xiàn):

var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
    return x + y;
}); // 25

[1, 3, 5, 7, 9] 變換成整數(shù) 13579,reduce() 也能派上用場:

var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
    return x * 10 + y;
}); // 13579
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如果你讀過Google的那篇大名鼎鼎的論文:MapReduce: Simplified Data Processi...
    八寶君閱讀 629評論 0 2
  • 高階函數(shù)map/reduce map 舉例說明,比如我們有一個函數(shù)f(x)=x^2,要把這個函數(shù)作用在一個數(shù)組[1...
    mr_young_閱讀 385評論 0 1
  • 高階函數(shù)1)函數(shù)本身可以賦值給變量,即"變量指向函數(shù)" 2)函數(shù)名實為指向函數(shù)的變量,即abs()看做一個函數(shù),a...
    MJXH閱讀 505評論 0 0
  • Python內(nèi)建了map()和reduce()函數(shù)。 map()函數(shù)接收兩個參數(shù),一個是函數(shù),一個是Iterabl...
    牛崽兒酷閱讀 138評論 0 0
  • Python內(nèi)建了map()和reduce()函數(shù)。 1、map()函數(shù)map()函數(shù)接收兩個參數(shù),一個是函數(shù),一...
    bjchenli閱讀 256評論 0 0

友情鏈接更多精彩內(nèi)容