軟體工程筆記 javascript

[JS作品]JS30系列04:Array Cardio Day 1 陣列的有氧運動

作品網址 需求思考分析 各陣列函式回傳值不同,reduce回傳是一個 […]

作品網址

Demo作品連結

JavaScript 30 作品目錄

需求思考分析

  • 各陣列函式回傳值不同,reduce回傳是一個值,filter、map、sort是回傳陣列。

特別技術、函式

Array.filter():方法會建立一個經指定之函式運算後,由原陣列中通過該函式檢驗之元素所構成的新陣列。白話的說就是他會把陣列過濾,留下我要的,並做成一個新陣列!

Array.prototype.map(): 會建立一個新的陣列,其內容為原陣列的每一個元素經由回呼函式運算後所回傳的結果之集合。 白話說就是建立一個新陣列,將一個一個陣列數值陸續讀出。

Array.prototype.sort():會依照給的內容,兩兩比對,接著排序,預設是根據字串的 Unicode 碼排序,要注意的是sort()不會回傳一個新陣列,而是直接修改原陣列。白話說就是會直接修改原陣列做排序動作。

arr.sort([compareFunction]) compareFunction(a, b) < 0 回傳值小於0,b的index高於a,a在b前面 compareFunction(a, b) = 0 回傳值等於0,a, b位置不變 compareFunction(a, b) > 0 回傳值大於0,b的index低於a,b在a前面

上面這塊很重要,是由這樣衍生出來的

Array.prototype.reduce(): 將一個累加器及陣列中每項元素(由左至右)傳入回呼函式,將陣列化為單一值。

reduce(function(){})會有2個參數: callback 函式和 initialValue

callback函式

callback函式會有4個引入值

accumulator、currentValue、currentIndex、array

initialValue則是設定accumulator的初始值

String.prototype.split():使用指定的分隔符字符串將一個String對象分割成子字符串數組,以一個指定的分割字串來決定每個拆分的位置。

參考資料:

JS 30 – 04 – Array Cardio Part I: https://ithelp.ithome.com.tw/articles/10202734

「JS30紀錄&心得」04 – Array Cardio Day 1: https://guahsu.io/2017/05/JavaScript30-04-Array-Cardio-Day-1/