摘要:題目一利用求積題目二字符串先變成,再利用把字符串轉(zhuǎn)換為的函數(shù)。題目三請把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮懀渌懙囊?guī)范名字。所以第一次接受到的參數(shù)是,結(jié)果為第二次接受到的參數(shù)是,結(jié)果為第三次接受到的參數(shù)是,結(jié)果為
這里題目是來自廖雪峰的教程map/reduce,這兩天在學習reduce時老是弄不懂它的參數(shù),做了他里面的幾個題目,清晰了很多,當然了我第一次做題目時,完全沒頭緒,基本是看了下面的評論才理解的,前輩們的博客是很好的學習資料。
題目一:利用reduce求積
var arr = [1,2,3,4,5]; arr.reduce((x,y) => x*y)
題目二:字符串13579先變成Array——[1, 3, 5, 7, 9],再利用reduce()把字符串轉(zhuǎn)換為Number的函數(shù)。
var str = "13579"; var a = str.split(""); console.log(a); //?["1", "3", "5", "7", "9"] var b = a.map((x) => +x); console.log(b); //?[1, 3, 5, 7, 9] var c = b.reduce((x,y) => x*10+y); console.log(typeof c); //number //str.split("").map((x) => +x).reduce((x,y) => x*10+y);
做這題時,自己是看了評論才會,不理解的地方就一步步用console.log()一個個打印出來。評論區(qū)里有人說+x和x*1是什么意思,其實用console.log()打印出來就知道是啥意思了,就是把字符串變成數(shù)字;對于reduce參數(shù)的理解:我認為它接受的函數(shù)的第一個參數(shù)是每次操作的結(jié)果,第二個參數(shù)是每次操作的內(nèi)容,不知道可不可以這樣理解,reduce的第二個參數(shù)是初始值。
題目三:請把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮?,其他小寫的?guī)范名字。輸入:["adam", "LISA", "barT"],輸出:["Adam", "Lisa", "Bart"]。
function normalize(arr) { return arr.map((x) => { return x.charAt(0).toUpperCase() + x.slice(1).toLowerCase(); }); }
charAt()從一個字符串中返回指定的字符
slice()從開始到結(jié)束,如果只有一個參數(shù),到最后
題目四:小明希望利用map()把字符串變成整數(shù),他寫的代碼很簡潔:
var arr = ["1", "2", "3"]; var r; r = arr.map(parseInt); console.log(r); //[1, NaN, NaN] r = arr.map(x => parseInt(x)); console.log(r) //[1,2,3]
parseInt()接受兩個參數(shù):第一個參數(shù)是需要轉(zhuǎn)換成數(shù)字的字符串,第二個參數(shù)是基數(shù),默認是0,10進制,如果是小于2或者大于36,則返回NaN
map()和forEach()一樣接受三個參數(shù):value key array,Array基本概念有介紹。所以:
第一次接受到的參數(shù)是map("1",0,[1,2,3]),parseInt("1",0),結(jié)果為1
第二次接受到的參數(shù)是map("2",1,[1,2,3]),parseInt("2",1),結(jié)果為NaN
第三次接受到的參數(shù)是map("3",2,[1,2,3]),parseInt("3",2),結(jié)果為NaN
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95005.html
摘要:簡單例子一個較為常用的場景就是累加或累乘輸出數(shù)組元素的乘積輸出數(shù)組元素的乘積簡寫形式輸出數(shù)組元素的乘積形式,營造復(fù)雜的逼格用在數(shù)組降維扁平化處理的例子中注方法用于連接兩個或多個數(shù)組。 看到一個提問的回答巧妙地使用了map/reduce操作,很優(yōu)雅,所以來學習和總結(jié)一下javascript自帶的map/reduce的使用技巧,文章不會講的很深,純當科普一下知識點,如有解釋的不正確的地方,...
摘要:前集回顧我們在開開心心做幾道機試題中吐了槽,也順勢展開了機試題之旅,本章我們暫時壓抑自己的吐槽之心,繼續(xù)就題目前行。其實和都是構(gòu)造函數(shù),可以直接調(diào)用的。請嘗試完成一個解析模塊本題考查對的理解,各部分都是什么意思。 前集回顧 我們在開開心心做幾道JavaScript機試題 - 01中吐了槽,也順勢展開了機試題之旅,本章我們暫時壓抑自己的吐槽之心,繼續(xù)就題目前行。仍然希望對各位正確認識Ja...
摘要:函數(shù)接收兩個參數(shù),一個是函數(shù),一個是,將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的返回。舉例說明,比如我們有一個函數(shù),要把這個函數(shù)作用在一個上,就可以用實現(xiàn)如下傳入的第一個參數(shù)是,即函數(shù)對象本身。 Python內(nèi)建了map()和reduce()函數(shù)。 如果你讀過Google的那篇大名鼎鼎的論文MapReduce: Simplified Data Processing on L...
摘要:函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。和不同的是,把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。 函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。注意其中:map和filter返回一個惰性序列,可迭代對象,需要轉(zhuǎn)化為list >>> a = 3.1415 >>> ...
摘要:通過對一系列任務(wù)建模來理解一些非常重要的函數(shù)式編程在列表操作中的價值一些些看起來不像列表的語句作為列表操作,而不是單獨執(zhí)行。映射我們將采用最基礎(chǔ)和最簡單的操作來開啟函數(shù)式編程列表操作的探索。函子是采用運算函數(shù)有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著...
閱讀 803·2021-10-14 09:43
閱讀 2129·2021-09-30 09:48
閱讀 3451·2021-09-08 09:45
閱讀 1101·2021-09-02 15:41
閱讀 1894·2021-08-26 14:15
閱讀 779·2021-08-03 14:04
閱讀 2982·2019-08-30 15:56
閱讀 3077·2019-08-30 15:52