Javascript library - Lodash
25 Aug 2022typescript
javascript
因緣際會下認識了這款實用又方便的套件 - Lodash,Lodash是一個一致性、模塊化、高性能的 Javascript 實用工具庫,遵循 MIT 標準,支持最新的運行環境(擷取自官網的介紹)。
安裝 Install
習慣寫typescript,所以這邊除了lodash,也安裝了@types/lodash
npm install lodash
npm install --save @types/lodash
import
import * as _ from "lodash";
一些範例
Lodash 提供很多好用的函式,這邊就簡單舉一些例子,詳細可以到Lodash docs來看。
-
_.chunk(array, [size=1])
把陣列拆分成多個size長度的陣列,剩餘不足一個size的剩餘元素組成最後一個陣列
console.log(_.chunk(['a', 'b', 'c', 'd'], 2)) // [ [ 'a', 'b' ], [ 'c', 'd' ] ]
-
_.compact(array)
創建一個新的陣列並返回,這個陣列有原陣列所有非假值元素。假值指如
false
,null
,0
,""
,undefined
, 和NaN
console.log(_.compact([0, 1, false, 2, '', 3])) // [ 1, 2, 3 ]
-
_.drop(array, [n=1])
去除陣列前n個元素
console.log(_.drop([1, 2, 3], 2)) // [ 3 ] console.log(_.drop([1, 2, 3], 5)) // []
-
_.fill(array, value, [start=0], [end=array.length])
將陣列從start位置開始到end位置結束替換為value,會改變原陣列,非建立新陣列回傳。
console.log(_.fill(Array(3), 2)) // [ 2, 2, 2 ] console.log(_.fill([4, 6, 8, 10], '*', 1, 3)) // [ 4, '*', '*', 10 ]
-
_.flatten(array)
減少一層陣列嵌套
console.log(_.flatten([1, [2, [3, [4]], 5]])) // [ 1, 2, [ 3, [ 4 ] ], 5 ]
-
_.flattenDeep(array)
使成為一維陣列
console.log(_.flattenDeep([1, [2, [3, [4]], 5]])) // [ 1, 2, 3, 4, 5 ]
-
_.remove(array, [predicate=_.identity])
移除陣列中
predicate
是true
的元素並返回var array = [1, 2, 3, 4]; var evens = _.remove(array, function(n) { return n % 2 == 0;}) console.log('array: ', array); console.log('evens: ', evens); // array: [ 1, 3 ] // evens: [ 2, 4 ]
-
_.uniq(array)
去除重複元素(保留第一次出現的元素)
console.log(_.uniq([2, 1, 2])) // [ 2, 1 ]
-
_.unzip(array) 與 _.zip([arrays])
var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); console.log('zipped: ', zipped) // zipped: [ [ 'a', 1, true ], [ 'b', 2, false ] ] console.log(_.unzip(zipped)) // [ [ 'a', 'b' ], [ 1, 2 ], [ true, false ] ]
-
_.zipWith([arrays], [iteratee=_.identity])
console.log(_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { return a + b + c; })) // [ 111, 222 ]