摘要:換個新話題內(nèi)容高階函數(shù)至少滿足以下條件函數(shù)可以作為參數(shù)被傳遞函數(shù)可以作為返回值被輸出。區(qū)別返回值是,不可以鏈式調(diào)用返回一個新數(shù)組,原數(shù)組不會改變結語業(yè)精于勤而荒于嬉,行成于思而毀于隨。
初衷上篇其實還有一篇關于閉包的文章,由于在前幾篇中已經(jīng)涉及到了相關方面,因此閉包文章暫時擱置一下。換個新話題:
內(nèi)容高階函數(shù):Higher-order function;
至少滿足以下條件:
函數(shù)可以作為參數(shù)被傳遞;
函數(shù)可以作為返回值被輸出。
常見的高階函數(shù)有: Map、Reduce、Filter、Sort;
array.map(function(currentValue,index,arr), thisValue)
map() 不會改變原始數(shù)組
[55,44,66,11].map(function(currentValue,index,arr){ console.log(currentValue); //map() 方法按照原始數(shù)組元素順序依次處理元素 console.log(index); console.log(arr); });
讓數(shù)組通過某種計算得到一個新數(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ù)組中的前項和后項做某種計算,并累計最終值。
var newArr = [15.5, 2.3, 1.1, 4.7].reduce(function(total,num){ return total + Math.round(num);//對數(shù)組元素進行四舍五入并計算總和 }, 0); console.log(newArr);//24
reduce() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)
3. filter
array.filter(function(currentValue,index,arr), thisValue)
filter() 不會改變原始數(shù)組
var newArr = [32, 33, 12, 40].filter(function(item){ return item > 32; }); console.log(newArr);//[33, 40]
篩選出符合條件的項,組成新數(shù)組。
4. forEach
array.forEach(function(currentValue, index, arr), thisValue)
map() 與 forEach() 語法一致,能用`forEach()`做到的,`map()`同樣可以,但是存在區(qū)別。
區(qū)別:
forEach()返回值是undefined,不可以鏈式調(diào)用;
map()返回一個新數(shù)組,原數(shù)組不會改變.
結語業(yè)精于勤而荒于嬉,行成于思而毀于隨。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/6997.html
摘要:原文作者譯者高階函數(shù)可以幫助你增強你的,讓你的代碼更具有聲明性。知道什么時候和怎樣使用高階函數(shù)是至關重要的。太棒了我們通過使用高階函數(shù)減少了許多額外的代碼。 原文:Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code作者:Guido Schmitz譯者:JeLewine 高階函數(shù)可...
摘要:函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。和不同的是,把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。 函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。注意其中:map和filter返回一個惰性序列,可迭代對象,需要轉化為list >>> a = 3.1415 >>> ...
摘要:歡迎您的支持系列目錄復習資料資料整理個人整理重溫基礎篇重溫基礎對象介紹重溫基礎對象介紹重溫基礎介紹重溫基礎相等性判斷重溫基礎閉包重溫基礎事件本章節(jié)復習的是中的高階函數(shù),可以提高我們的開發(fā)效率。 本文是 重溫基礎 系列文章的第二十一篇。 今日感受:想家。 本人自己整理的【Cute-JavaScript】資料,包含:【ES6/ES7/ES8/ES9】,【JavaScript基礎...
摘要:也可以直接調(diào)用內(nèi)置方法常用高階函數(shù)方法的作用是接收一個函數(shù)作為參數(shù),對數(shù)組中每個元素按順序調(diào)用一次傳入的函數(shù)并返回結果,不改變原數(shù)組,返回一個新數(shù)組。 Ps. 晚上加班到快十點,回來趕緊整理整理這篇文章,今天老大給我推薦了一篇文章,我從寫技術博客中收獲到了什么?- J_Knight_,感受也是很多,自己也需要慢慢養(yǎng)成記錄博客的習慣,即使起步艱難,難以堅持,但還是要讓自己加油加油。 前...
摘要:高階函數(shù)如果一個函數(shù)操作其他函數(shù),即將其他函數(shù)作為參數(shù)或將函數(shù)作為返回值,那么我們可以將其稱為高階函數(shù)。我們可以使用高階函數(shù)對一系列操作和值進行抽象。高階函數(shù)有多種表現(xiàn)形式。腳本數(shù)據(jù)集數(shù)據(jù)處理是高階函數(shù)表現(xiàn)突出的一個領域。 來源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項目原文:Higher-Order Functions 譯者:飛龍 協(xié)議:CC BY-NC-...
閱讀 1404·2021-11-11 11:00
閱讀 3266·2021-09-24 09:47
閱讀 5429·2021-09-22 15:53
閱讀 1037·2021-09-10 10:50
閱讀 3275·2021-09-01 11:40
閱讀 1241·2019-08-30 15:55
閱讀 529·2019-08-30 12:49
閱讀 1119·2019-08-29 17:12