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