Lodash筆記

Lodash https://www.lodashjs.com/docs/lodash.chunk
1.安裝

$ npm i -g npm 
$ npm i --save lodash

2.lodash的好處
Lodash通過array、number、objects、string等等的使用難度從而讓javaScript變得簡單。
Lodah的模塊化方法非常適用於:
遍歷array、object和string
對值進行操作和檢測
創建符合功能的函數
3.數組Array
1)_.chunk(array,[size=1])
將數組(array)拆分成多個size長度的區塊,並將這些區塊組成一個新數組。如果array無法被分割成全部等長的區塊,那麼最後剩餘的元素將組成一個區塊。
2) _.compact(array)
創建一個新數組,包含原數組中所有的非假值元素。例如,false,null,0,””,undefined和NaN都是被 認爲是”假值”。

3)_.concat(array,[values])
創建一個新數組,將array與任何數組或值連接在一起。

4)_.difference(array,[values])
創建一個具有唯一array值的數組,每個值不包含在其他給定的數組中。

5).differenceBy(array,[value],[iteratee=.identity])
該方法類似_.difference,除了它接受一個iteratee,調用array和values中的每個元素以產生比較的標準。結果只是從第一個數組中選擇。

6)_.differenceWith(array,[values],[comparator])

該方法類似_.difference,除了它接受一個comparator(比較器),它調用比較array,values中的元素。

7)_.drop(array,[n=1])

創建一個切片數組,去除array前面的n個元素。(n默認值爲1)
8)_.dropRight(array,[n=1])

創建一個切片數組,去除array尾部的n個元素。

9).dropRightWhile(array,[predicate=.identity])

創建一個切片數組,去除array中從predicate返回假值開始到尾部的部分。

10).dropWhile(array,[predicate=.identity])

創建一個切片數組,去除array中從起點開始到predicate返回假值結束部分。

11)_.fill(array,value,[start=0],[end=array.length])

使用value值來填充(替換)array,從start位置開始,到end位置結束(但不包含end位置)

12).findIndex(array,[predicate=.identity],[formIndex=0])

該方法類似_.find,區別是該方法返回第一個通過predicate判斷爲真值的元素的索引值(index),而不是元素本身。

13).findLastIndex(array,[predicate=.identity],[fromIndex=array.length-1])

這個方法類似_.findIndex,區別是它是從右到左的迭代集合array中的元素。

14)_.head(array)

獲取數組array的第一個元素

15)_.flatten(array)

減少一級array的嵌套深度。

16)_.flattenDeep(array)

將array遞歸爲一維數組

17)_.flattenDepth(array,[depth=1])

根據depth遞歸減少array的嵌套層級

18)_.fromPairs(pairs)

與_.toPairs 正好相反,這個方法返回一個由鍵值對pairs構成的對象。

19)_.indexOf(array,value,[fromIndex=0])

使用SameValueZero等值比較,返回首次value在數組array中被找到的索引值,如果fromIndex爲負值,將從數組array尾端索引進行匹配

  1. _.initial(array)

獲取數組array中除了最後一個元素之外的所有元素

21)_.intersection([arrays])

創建唯一值的數組,這個數組包含所有給定數組都包含的元素,使用SameValueZero進行相等性比較(可以理解爲給定數組的交集)

22).intersectionBy([arrays],[iteratee=.identity])

這個方法類似_.intersection,區別是它接受一個iteratee調用每一個arrays的每個值產生一個值,通過產生的值進行了比較。結果值是從第一個數組中選擇。

23)_.intersectionWith([arrays],[comparator])

這個方法類似_.intersection,區別是它接受一個comparator調用比較arrays中的元素。結果值是從第一個數組中選擇。

24)_.join(array,[separator=’,’])

將數組array中的所有元素轉換爲由separator分隔的字符串。

25)_.last(array)

獲取array中的最後一個元素。

26)_.lastIndexOf(array,value,[fromIndex=array.length-1])

這個方法類似_.indexOf,區別是它蔥油到左遍歷array的元素。

27)_.nth(array,[n=0])

獲取array數組的第n個元素。如果n爲負數,則返回從數組結尾開始的第n個元素。

28)_.pull(array,[values])

移除數組array中的所有和給定值相等的元素,使用SameValueZero進行全等比較。

29)_.pullAll(array,values)

這個方法類似_.pull,區別是這個方法接收一個要移除值的數組。

30).pullAllBy(array,values,[iteratee=.identity])

這個方法類似於_.pullAll,區別是這個方法接受一個iteratee調用array和values的每個值以產生一個值,通過產生的值進行比較。

31)_.pullAllWith(array,values,[comparator])

這個方法類似於_.pullAll,區別是這個方法接受comparator調用array中的元素和values比較。

32)_.pullAt(array,[indexes])

根據索引indexes,移除array中對應的元素,並返回被移除元素的數組。

33).remove(array,[predicate=.identity])

移除數組中的predicate返回爲真值的所有元素,並返回移除元素組成的數組。

34)_.reverse(array)

反轉array,使得第一個元素變爲最後一個元素,第二個元素變爲倒數第二個元素,依次類推。

35)_.slice(array,[start=0],[end=array.length])

裁剪數組array,從start位置開始到end結束,但不包含end本身的位置。

36)_.sortedIndex(array,value)

使用二進制的方式檢索來決定value值應該插入到數組中儘可能小的索引位置。以保證array的排序。

37).sortedIndexBy(array,value,[iteratee=.identity])

這個方法類似_.sortedIndex,除了它接受一個iteratee(迭代函數),調用每一個數組元素,返回結果和value值比較來計算排序。

38)_.sortedIndexOf(array,value)

這個方法類似_.indexOf,除了它是在已經排序的數組array上執行二進制檢索

39)_.sortedLastIndex(array,value)

此方法類似於_.sortedIndex,除了它返回value值在array中儘可能大的索引位置

40).sortedLastIndexBy(array,value,[iteratee=.identity])

此方法類似_.soretedLastIndex,除了它接受一個iteratee,調用每一個數組元素,返回結果和value值比較計算排序。

41)_.sortedLastIndexOf(array,value)

此方法類似_.lastIndeOf,除了它是在已經排序的數組array上執行二進制檢索。

42)_.sortedUniq(array)

這個方法類似_.uniq,除了它會優化排序數組。

43)_.sortedUniqBy(array,[iteratee])

這個方法類似_.uniqBy,除了它會優化排序數組。

44)_.tail(array)

獲取除了array數組第一個元素以外的全部元素。

45)_.take(array,[n=1])

創建一個數組切片,從array數組起始元素開始提取n個元素。

46)_.takeRight(array,[n=1])

創建一個數組切片,從array數組的最後一個元素開始提取n個元素。

47).takeRightWhile(array,[predicate=.identity])

從array數組的最後一個元素開始提取元素,知道predicate返回假值。

48)takeWhile(array,[predicate=_.identity])

從array數組的起始元素開始提取元素,直到predicate返回假值。

49)_.union([arrays])

創建一個按順序排列的唯一值的數組。所有給定數組的元素的元素值使用SameValueZero做等值比較。

50).unionBy([arrays],[iteratee=.identity])

這個方法類似_.union,除了它接受一個iteratee,調用每一個數組的每個元素以產生唯一性計算的標準。

51)_.unionWith([arrays],[comparator])

這個方法類似_.union,除了它接受一個comparator調用比較arrays數組的每一個元素。

52)_.uniq(array)

創建一個去重後的array數組副本,使用了SameValueZero做等值比較。只有第一次出現的元素纔會被保留。

4.Lang

(1)_.castArray(value)

如果value不是數組,那麼強制轉換爲數組

(2)_.clone(value)

創建一個value的淺拷貝,(淺拷貝改變複製的數組,同時原來的數組也被改變)

(3)_.cloneDeep(value)

這個方法類似_.clone,除了它會遞歸拷貝value,(淺拷貝改變複製的數組,原來的數組不會改變)

(4)_.cloneDeepWith(value,[customizer])

這個方法類似_.cloneWith,除了它會遞歸克隆value

(5)_.cloneWith(value,[customizer])

這個方法類似_.clone,除了它接受一個customizer定製返回的克隆值。如果customizer返回undefined將會使用拷貝方法代替處理

(6)_.conformsTo(objects,source)

通過調用斷言source的屬性與object的相應屬性值,檢查object是否符合source。

(7)_.eq(value,other)

執行SameValueZero比較兩者的值,來確定他們是否相等。
(8)_.gt(value,other)

檢查value是否大於other

(9)_.gte(value,other)

檢查value是否大於或者等於other

(10)_.isArguments(value)

檢查value是否是一個類arguments對象

(11)_.isArray(value)

檢查value是否是Array類對象

(12)_.isArrayBuffer(value)

檢查value是否是ArrayBuffer對象

(13)_.isArrayLike(value)

檢查value是否是類數組。如果一個值被認爲是類數組,那麼它2不是一個函數,並且value.length是一個整數,大於等於0,小於等於Number.MAX_SIZE_INTEGER

(14)_.isArrayLikeObject(value)

這個方法類似_.isArrayLike,除了它還檢查value是否是個對象。

(15)_.isBoolean(value)

檢查value是否是原始boolean類型或者對象

(16)_.isBuffer(value)

檢查value是否是個buffer

(17)_.isDate(value)

檢查value是否是date對象

(18)_.isElement(value)

檢查value是否是可能是DOM元素

(19)_.isEmpty(value)

檢查value是否爲一個空對象,集合,映射或者set

(20)_.isEqual(value,other)

執行深比較來確定兩者的值是否相等。

(21)_.isEqualWith(value,other,[customizer])

這個方法類似_.isEqual。除了它接受一個custmizer用來定製比較值。

(22)_.isError(value)

檢查value是否是
Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, 或者 URIError對象。

(23)_.isFinite(value)

檢查 value 是否是原始有限數值。

(24)_.isFunction(value)

檢查value是否是Function對象

(25)_.isInteger(value)

檢查value是否爲一個整數。

(26)_.isLength(value)

檢查value是否爲有效的類數組長度

(27)_.isMap(value)

檢查value是否爲一個Map對象

(28)_.isMatch(objects,source)

執行一個深度比較,來確定object是否含有和source完全相等的屬性值。

(29)_.isMatchWith(object,source,[customizer])

這個方法類似 _.isMatch。 除了它接受一個 customizer 定製比較的值。 如果 customizer 返回 undefined 將會比較處理方法代替。

(30)_.isNaN(value)

檢查 value 是否是 NaN。

(31)_.isNative(value)

檢查value是否是一個原生函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章