成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

map, reduce, filter 等高階函數(shù)

JaysonWang / 3225人閱讀

摘要:換個(gè)新話題內(nèi)容高階函數(shù)至少滿足以下條件函數(shù)可以作為參數(shù)被傳遞函數(shù)可以作為返回值被輸出。區(qū)別返回值是,不可以鏈?zhǔn)秸{(diào)用返回一個(gè)新數(shù)組,原數(shù)組不會(huì)改變結(jié)語(yǔ)業(yè)精于勤而荒于嬉,行成于思而毀于隨。

初衷

上篇其實(shí)還有一篇關(guān)于閉包的文章,由于在前幾篇中已經(jīng)涉及到了相關(guān)方面,因此閉包文章暫時(shí)擱置一下。換個(gè)新話題:

內(nèi)容

高階函數(shù):Higher-order function;

至少滿足以下條件:

    函數(shù)可以作為參數(shù)被傳遞;

    函數(shù)可以作為返回值被輸出。

常見(jiàn)的高階函數(shù)有: Map、ReduceFilter、Sort


1. Map

array.map(function(currentValue,index,arr), thisValue)

map() 不會(huì)改變?cè)紨?shù)組

[55,44,66,11].map(function(currentValue,index,arr){
	console.log(currentValue); //map() 方法按照原始數(shù)組元素順序依次處理元素
	console.log(index);
	console.log(arr);
});

讓數(shù)組通過(guò)某種計(jì)算得到一個(gè)新數(shù)組

var newArr = [55,44,66,11].map(function(item,index,arr){
	return item *10;
});
console.log(newArr);//[550, 440, 660, 110]

2. reduce

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

initialValue:傳遞給函數(shù)的初始值;

讓數(shù)組中的前項(xiàng)和后項(xiàng)做某種計(jì)算,并累計(jì)最終值。

var newArr = [15.5, 2.3, 1.1, 4.7].reduce(function(total,num){
	return total + Math.round(num);//對(duì)數(shù)組元素進(jìn)行四舍五入并計(jì)算總和
}, 0);
console.log(newArr);//24

reduce() 對(duì)于空數(shù)組是不會(huì)執(zhí)行回調(diào)函數(shù)

3. filter

array.filter(function(currentValue,index,arr), thisValue)

filter() 不會(huì)改變?cè)紨?shù)組

var newArr = [32, 33, 12, 40].filter(function(item){
	return item > 32;
});
console.log(newArr);//[33, 40]

篩選出符合條件的項(xiàng),組成新數(shù)組。

4. forEach

array.forEach(function(currentValue, index, arr), thisValue)

map() 與 forEach() 語(yǔ)法一致,能用`forEach()`做到的,`map()`同樣可以,但是存在區(qū)別。

區(qū)別:

forEach()返回值是undefined,不可以鏈?zhǔn)秸{(diào)用;

map()返回一個(gè)新數(shù)組,原數(shù)組不會(huì)改變.

結(jié)語(yǔ)

業(yè)精于勤而荒于嬉,行成于思而毀于隨。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/6997.html

相關(guān)文章

  • 【譯】高階函數(shù):利用FilterMapReduce來(lái)編寫(xiě)更易維護(hù)的代碼

    摘要:原文作者譯者高階函數(shù)可以幫助你增強(qiáng)你的,讓你的代碼更具有聲明性。知道什么時(shí)候和怎樣使用高階函數(shù)是至關(guān)重要的。太棒了我們通過(guò)使用高階函數(shù)減少了許多額外的代碼。 原文:Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code作者:Guido Schmitz譯者:JeLewine 高階函數(shù)可...

    jone5679 評(píng)論0 收藏0
  • Python3的高階函數(shù)map,reduce,filter

    摘要:函數(shù)的參數(shù)能接收變量,那么一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。和不同的是,把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。 函數(shù)的參數(shù)能接收變量,那么一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。注意其中:map和filter返回一個(gè)惰性序列,可迭代對(duì)象,需要轉(zhuǎn)化為list >>> a = 3.1415 >>> ...

    Codeing_ls 評(píng)論0 收藏0
  • 【重溫基礎(chǔ)】21.高階函數(shù)

    摘要:歡迎您的支持系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)篇重溫基礎(chǔ)對(duì)象介紹重溫基礎(chǔ)對(duì)象介紹重溫基礎(chǔ)介紹重溫基礎(chǔ)相等性判斷重溫基礎(chǔ)閉包重溫基礎(chǔ)事件本章節(jié)復(fù)習(xí)的是中的高階函數(shù),可以提高我們的開(kāi)發(fā)效率。 本文是 重溫基礎(chǔ) 系列文章的第二十一篇。 今日感受:想家。 本人自己整理的【Cute-JavaScript】資料,包含:【ES6/ES7/ES8/ES9】,【JavaScript基礎(chǔ)...

    wua_wua2012 評(píng)論0 收藏0
  • 【重溫基礎(chǔ)】JS中的常用高階函數(shù)介紹

    摘要:也可以直接調(diào)用內(nèi)置方法常用高階函數(shù)方法的作用是接收一個(gè)函數(shù)作為參數(shù),對(duì)數(shù)組中每個(gè)元素按順序調(diào)用一次傳入的函數(shù)并返回結(jié)果,不改變?cè)瓟?shù)組,返回一個(gè)新數(shù)組。 Ps. 晚上加班到快十點(diǎn),回來(lái)趕緊整理整理這篇文章,今天老大給我推薦了一篇文章,我從寫(xiě)技術(shù)博客中收獲到了什么?- J_Knight_,感受也是很多,自己也需要慢慢養(yǎng)成記錄博客的習(xí)慣,即使起步艱難,難以堅(jiān)持,但還是要讓自己加油加油。 前...

    gitmilk 評(píng)論0 收藏0
  • JavaScript 編程精解 中文第三版 五、高階函數(shù)

    摘要:高階函數(shù)如果一個(gè)函數(shù)操作其他函數(shù),即將其他函數(shù)作為參數(shù)或?qū)⒑瘮?shù)作為返回值,那么我們可以將其稱為高階函數(shù)。我們可以使用高階函數(shù)對(duì)一系列操作和值進(jìn)行抽象。高階函數(shù)有多種表現(xiàn)形式。腳本數(shù)據(jù)集數(shù)據(jù)處理是高階函數(shù)表現(xiàn)突出的一個(gè)領(lǐng)域。 來(lái)源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項(xiàng)目原文:Higher-Order Functions 譯者:飛龍 協(xié)議:CC BY-NC-...

    blastz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<