[筆記] 紀錄在專案中使用過的lodash
Why Lodash ?
Lodash 在處理 arrays 、numbers、objects、strings 上更加容易,讓 Javascript 變得簡潔。
在專案中使用 lodash
透過 npm
or yarn
安裝:
1 | npm i lodash |
可以這樣引入:
1 | //只 bundle 需要的功能 |
1 | // lodash將整包被 bundle 到輸出檔案中 |
避免將 lodash 全數引入
可以透過安裝 babel-plugin-lodash來避免 lodash 被全數引入,安裝後下列的寫法只會 bundle 需要的功能。
1 | import { map, filter } from "lodash"; |
開發專案中用過的 lodash
defaultTo startsWith
Collection
map(collection, [iteratee=_.identity])
通過迭代集合中元素來創建陣列。
- collection (Array|Object): 將被遍歷的集合
- [iteratee=_.identity] (Function): 每次迭代調用的函數.
1 | import { map } from "lodash"; |
forEach(collection, [iteratee=_.identity])
迭代集合,但不會回傳任何東西,可以通過 return false 提早退出迭代
- collection (Array|Object): 將被遍歷的集合.
- [iteratee=_.identity] (Function): 每次迭代調用的函數.
1 | import { forEach } from "lodash"; |
find(collection, [predicate=_.identity], [fromIndex=0])
通過迭代集合找尋指定的元素
- collection: 將被遍歷的集合
- predicate=_.identity : 每次迭代調用的函數
- fromIndex : 起始位置
1 | import { find } from "lodash"; |
includes(collection, value, [fromIndex=0])
檢查參考值是否在集合中
- collection (Array|Object|string): 將被檢查的集合.
- value (*): 參考值.
- [fromIndex=0](number): 起始位置.
1 | import { includes } from "lodash"; |
some(collection, [predicate=_.identity])
檢查是否有符合條件的元素,一旦判斷到符合條件的元素迭代就會停止。
- collection (Array|Object): 將被遍歷的集合.
- [predicate=_.identity] (Function): 每次迭代調用的函數.
1 | import { some } from "lodash"; |
Array
join(array, [separator=’,’])
將指定的陣列用分隔符連接起來
- array (Array): 將被轉換的陣列.
- [separator=','] (string): 分隔符.
1 | import { join } from "lodash"; |
findIndex(array, [predicate=_.identity], [fromIndex=0])
通過迭代集合找尋指定的元素並回傳該位置的索引值
- array (Array): 將被檢查的陣列.
- [predicate=_.identity] (Function): 每次迭代調用的函數.
- [fromIndex=0] (number): 起始位置.
1 | import { findIndex } from "lodash"; |
head(array)
獲取陣列的第一個元素
- array (Array): 要查詢的陣列.
1 | import { head } from "lodash"; |
Math
floor(number, [precision=0])
- number : 四捨五入後的數字
- [precision=0] : 往後 n 位小數點
1 | import { floor } from "lodash"; |
Lang
isNull(value)
檢查該數值是否為 Null
- value (*): 將被檢查的數值.
1 | import { isNull } from "lodash"; |
isFinite(value)
檢查該數值是否為有限數值
- value(*): 將被檢查的數值.
1 | import { isFinite } from "lodash"; |
isEmpty(value)
檢查該數值是否為空集合
- value(*): 將被檢查的數值.
1 | import { isEmpty } from "lodash"; |
Object
get(object, path, [defaultValue])
通過路徑獲取該物件的資料,如果是 undefined 則返回預設數值.
- object (Object): 要查詢的物件.
- path (Array|string): 屬性路徑.
- [defaultValue] (*): 預設數值.
1 | import { get } from "lodash"; |
Util
defaultTo(value, defaultValue)
如果數值為 NaN 、 null 、 undefined 就返回預設值
- value (*): 將被檢查的數值.
- defaultValue (*): 預設值.
1 | import { defaultTo } from "lodash"; |
String
startsWith([string=’’], [target], [position=0])
檢查該位置的字串是否為目標字串
- [string=''] (string): 將被檢查的字串.
- [target] (string): 想找尋的字串.
- [position=0] (number): 想找尋的位置.
1 | import { startsWith } from "lodash"; |
結語
這篇參考充分利用 lodash 讓你的程式碼更易讀及維護– JIGSAWYE的文章。
另外 lodash 還有提供 lodash/fp 能夠使用 Functional Programming 讓程式碼更簡潔,如果有興趣可以看看官方文件或是參考 jigsawye 翻譯的 JavaScript Functional Programming 指南