摘要:題目一利用求積題目二字符串先變成,再利用把字符串轉(zhuǎn)換為的函數(shù)。題目三請(qǐng)把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮?,其他小寫的?guī)范名字。所以第一次接受到的參數(shù)是,結(jié)果為第二次接受到的參數(shù)是,結(jié)果為第三次接受到的參數(shù)是,結(jié)果為
這里題目是來自廖雪峰的教程map/reduce,這兩天在學(xué)習(xí)reduce時(shí)老是弄不懂它的參數(shù),做了他里面的幾個(gè)題目,清晰了很多,當(dāng)然了我第一次做題目時(shí),完全沒頭緒,基本是看了下面的評(píng)論才理解的,前輩們的博客是很好的學(xué)習(xí)資料。
題目一:利用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);
做這題時(shí),自己是看了評(píng)論才會(huì),不理解的地方就一步步用console.log()一個(gè)個(gè)打印出來。評(píng)論區(qū)里有人說+x和x*1是什么意思,其實(shí)用console.log()打印出來就知道是啥意思了,就是把字符串變成數(shù)字;對(duì)于reduce參數(shù)的理解:我認(rèn)為它接受的函數(shù)的第一個(gè)參數(shù)是每次操作的結(jié)果,第二個(gè)參數(shù)是每次操作的內(nèi)容,不知道可不可以這樣理解,reduce的第二個(gè)參數(shù)是初始值。
題目三:請(qǐng)把用戶輸入的不規(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()從一個(gè)字符串中返回指定的字符
slice()從開始到結(jié)束,如果只有一個(gè)參數(shù),到最后
題目四:小明希望利用map()把字符串變成整數(shù),他寫的代碼很簡(jiǎn)潔:
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()接受兩個(gè)參數(shù):第一個(gè)參數(shù)是需要轉(zhuǎn)換成數(shù)字的字符串,第二個(gè)參數(shù)是基數(shù),默認(rèn)是0,10進(jìn)制,如果是小于2或者大于36,則返回NaN
map()和forEach()一樣接受三個(gè)參數(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95005.html
摘要:簡(jiǎn)單例子一個(gè)較為常用的場(chǎng)景就是累加或累乘輸出數(shù)組元素的乘積輸出數(shù)組元素的乘積簡(jiǎn)寫形式輸出數(shù)組元素的乘積形式,營造復(fù)雜的逼格用在數(shù)組降維扁平化處理的例子中注方法用于連接兩個(gè)或多個(gè)數(shù)組。 看到一個(gè)提問的回答巧妙地使用了map/reduce操作,很優(yōu)雅,所以來學(xué)習(xí)和總結(jié)一下javascript自帶的map/reduce的使用技巧,文章不會(huì)講的很深,純當(dāng)科普一下知識(shí)點(diǎn),如有解釋的不正確的地方,...
摘要:前集回顧我們?cè)陂_開心心做幾道機(jī)試題中吐了槽,也順勢(shì)展開了機(jī)試題之旅,本章我們暫時(shí)壓抑自己的吐槽之心,繼續(xù)就題目前行。其實(shí)和都是構(gòu)造函數(shù),可以直接調(diào)用的。請(qǐng)嘗試完成一個(gè)解析模塊本題考查對(duì)的理解,各部分都是什么意思。 前集回顧 我們?cè)陂_開心心做幾道JavaScript機(jī)試題 - 01中吐了槽,也順勢(shì)展開了機(jī)試題之旅,本章我們暫時(shí)壓抑自己的吐槽之心,繼續(xù)就題目前行。仍然希望對(duì)各位正確認(rèn)識(shí)Ja...
摘要:函數(shù)接收兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是,將傳入的函數(shù)依次作用到序列的每個(gè)元素,并把結(jié)果作為新的返回。舉例說明,比如我們有一個(gè)函數(shù),要把這個(gè)函數(shù)作用在一個(gè)上,就可以用實(shí)現(xiàn)如下傳入的第一個(gè)參數(shù)是,即函數(shù)對(duì)象本身。 Python內(nèi)建了map()和reduce()函數(shù)。 如果你讀過Google的那篇大名鼎鼎的論文MapReduce: Simplified Data Processing on L...
摘要:函數(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 >>> ...
摘要:通過對(duì)一系列任務(wù)建模來理解一些非常重要的函數(shù)式編程在列表操作中的價(jià)值一些些看起來不像列表的語句作為列表操作,而不是單獨(dú)執(zhí)行。映射我們將采用最基礎(chǔ)和最簡(jiǎn)單的操作來開啟函數(shù)式編程列表操作的探索。函子是采用運(yùn)算函數(shù)有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著...
閱讀 860·2021-10-14 09:43
閱讀 2187·2021-09-30 09:48
閱讀 3534·2021-09-08 09:45
閱讀 1168·2021-09-02 15:41
閱讀 1954·2021-08-26 14:15
閱讀 852·2021-08-03 14:04
閱讀 3037·2019-08-30 15:56
閱讀 3129·2019-08-30 15:52