摘要:換個(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、Reduce、Filter、Sort;
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
摘要:原文作者譯者高階函數(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ù)可...
摘要:函數(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 >>> ...
摘要:歡迎您的支持系列目錄復(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ǔ)...
摘要:也可以直接調(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)持,但還是要讓自己加油加油。 前...
摘要:高階函數(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-...
閱讀 1337·2021-11-11 11:00
閱讀 3069·2021-09-24 09:47
閱讀 5005·2021-09-22 15:53
閱讀 976·2021-09-10 10:50
閱讀 3219·2021-09-01 11:40
閱讀 1178·2019-08-30 15:55
閱讀 481·2019-08-30 12:49
閱讀 1063·2019-08-29 17:12