成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

函數(shù)式編程(四)

FingerLiu / 2601人閱讀

摘要:命令式代碼與聲明式代碼前面我們介紹了函數(shù)式編程中常見的幾種函數(shù),下面我們要開始轉(zhuǎn)變觀念了。命令式聲明式我們看下函數(shù)的簡單實現(xiàn)。接受個參數(shù)這個常見的函數(shù)會在我們函數(shù)式編程中經(jīng)常出現(xiàn)的三個函數(shù)。一段函數(shù)式編程的綜合應用

我們接下來介紹函數(shù)式語言中3個常見的函數(shù):Map,Filter,Reduce。

命令式代碼與聲明式代碼

前面我們介紹了函數(shù)式編程中常見的幾種函數(shù),下面我們要開始轉(zhuǎn)變觀念了。

命令式代碼的意思就是,我們通過編寫一條又一條指令去讓計算機執(zhí)行一些動作,這其中一般都會涉及到很多繁雜的細節(jié)。 而聲明式就要優(yōu)雅很多了,我們通過寫表達式的方式來聲明我們想干什么,而不是通過一步一步的指示。

// 命令式
const makes = [];
for (i = 0; i < cars.length; i++) {
  makes.push(cars[i].make);
}

// 聲明式
var makes = cars.map(function(car){ return car.make; });

我們看下es5 Map,Filter,Reduce函數(shù)的簡單實現(xiàn)。

Array.prototype.map = function(f) {
    const newArray = [];
    const O = Object(this);
    for (let i = 0; i < O.length; i++) {
        newArray[i] = f(O[i]);
    }
    return newArray;
}


Array.prototype.filter = function(pred) {
    const newArray = [];
    for (var i = 0; i < this.length; ++i) {
        if (pred(this[i]))
            newArray[newArray.length] = this[i];
    }
    return newArray;
}

Array.prototype.reduce = function(f, start) {
    var acc = start;
    for (var i = 0; i < this.length; ++i)
        acc = f(this[i], acc); // f() 接受2個參數(shù)
    return acc;
};

這3個常見的函數(shù)會在我們函數(shù)式編程中經(jīng)常出現(xiàn)的三個函數(shù)。
有一點需要說明的是,for循環(huán)是自然語言的處理結(jié)果,永遠是比map快的。這個就需要你自己在編寫代碼的時候?qū)走M行權(quán)衡。

一段函數(shù)式編程的綜合應用



    
        
        
    
    

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/82882.html

相關(guān)文章

  • 前端進擊的巨人():略知函數(shù)編程

    摘要:自執(zhí)行函數(shù)閉包實現(xiàn)模塊化以樂之名程序員產(chǎn)品經(jīng)理對作用域,以及閉包知識還沒掌握的小伙伴,可回閱前端進擊的巨人三從作用域走進閉包。參考文檔利用閉包實現(xiàn)模塊化翻譯淺談中的高階函數(shù)系列更文請關(guān)注專欄前端進擊的巨人,不斷更新中。。。 系列更文前三篇文章,圍繞了一個重要的知識點:函數(shù)。函數(shù)調(diào)用棧、函數(shù)執(zhí)行上下文、函數(shù)作用域到閉包??梢姴焕斫夂瘮?shù)式編程,代碼都擼不好。 showImg(https:/...

    omgdog 評論0 收藏0
  • 初見函數(shù)編程

    摘要:在學習的過程中時常會聽到一個名次函數(shù)式編程,那么究竟什么是函數(shù)式編程,函數(shù)式編程又有什么優(yōu)點,這就在這篇博客進行一個簡單的總結(jié)吧主要內(nèi)容函數(shù)式編程的概念函數(shù)式編程的優(yōu)點與示例什么是函數(shù)式編程首先,我們放下編程的概念,我們來看函數(shù)。 在學習 JS 的過程中時常會聽到一個名次——函數(shù)式編程,那么究竟什么是函數(shù)式編程,函數(shù)式編程又有什么優(yōu)點,這就在這篇博客進行一個簡單的總結(jié)吧~ 主要內(nèi)容: 函...

    jerryloveemily 評論0 收藏0
  • JavaScript的語言特性以及重要版本

    摘要:通常一個完成的不僅僅包含了還包括了以及相關(guān)版本該版本在中使用。基于原型函數(shù)先行的語言使用基于原型的的繼承機制,函數(shù)是的第一等公民其他相關(guān)的語言特性編譯型語言把做好的源程序全部編譯成二進制代碼的可運行程序。 轉(zhuǎn)載請注明出處,創(chuàng)作不易,更多文章請戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語言,起初的目...

    Yangder 評論0 收藏0
  • 《java 8 實戰(zhàn)》讀書筆記 -第十函數(shù)編程的技巧

    摘要:但是,最好使用差異化的類型定義,函數(shù)簽名如下其實二者說的是同一件事。后者的返回值和初始函數(shù)的返回值相同,即。破壞式更新和函數(shù)式更新的比較三的延遲計算的設計者們在將引入時采取了比較特殊的方式。四匹配模式語言中暫時并未提供這一特性,略。 一、無處不在的函數(shù) 一等函數(shù):能夠像普通變量一樣使用的函數(shù)稱為一等函數(shù)(first-class function)通過::操作符,你可以創(chuàng)建一個方法引用,...

    nemo 評論0 收藏0
  • 古老的面向?qū)ο?em>編程

    摘要:面向?qū)ο缶幊桃欢瓮暾膭?chuàng)建類的示例如何創(chuàng)建一個類,包含有靜態(tài)屬性方法,公有私有屬性方法靜態(tài)私有變量靜態(tài)私有方法安全模式,防止未使用操作符私有變量方法公有屬性,方法靜態(tài)公有屬性靜態(tài)共有方法使用關(guān)閉包定義靜態(tài)私有變量與方法,所有實例創(chuàng)建過程中都 面向?qū)ο缶幊?showImg(https://segmentfault.com/img/bVbeqQd?w=2516&h=534); 一段完整的創(chuàng)...

    sutaking 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<