lodash方法


lodash:

var _ = require('lodash');
一、Array
1. _.chunk(array,size):將一個數組分割成多個size長度的區塊,不足則剩余部分組成一個區塊。(新數組)

2. _.compact(array):去除一個數組中的假值(undefined,null,false,'',0,NaN)。(新數組)

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

4. _.difference(array,array1):從array中將array1中有的值過濾掉。(新數組)

5. _.differenceBy(array, [values], [iteratee=_.identity])同上,不過首先使用迭代器分別迭代array 和 values中的每個元素,
返回的值作為比較值。(新數組)

6. _.drop(array, n)去除array前面的n個元素,默認值為1。

7. _.dropRight(array,n)去除array尾部的n個元素。默認值為1。

8. _.dropRightWhile(array, [predicate=_.identity])去除array中從 predicate 返回假值開始到尾部的部分(從右側開始)。
predicate 會傳入3個參數: (value, index, array)。

9. _.dropWhile(array, [predicate=_.identity])去除array中從起點開始到 predicate 返回假值結束部分。

10. _.fill(array, value, [start=0], [end=array.length])使用 value 值來填充(替換) array,從start位置開始(默認0),
到end位置結束(但不包含end位置)。(原數組)

11. _.findIndex(array, [predicate=_.identity], [fromIndex=0])該方法類似_.find,
區別是該方法返回第一個通過 predicate 判斷為真值的元素的索引值(index),而不是元素本身。

12._.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])
這個方式類似 _.findIndex, 區別是它是從右到左的迭代集合array中的元素。

13._.head(array)獲取數組 array 的第一個元素。

14._.flatten(array)減少一級array嵌套深度

15._.flattenDeep(array)將array遞歸為一維數組

16._.flattenDepth(array, [depth=1])根據depth遞歸減少array的嵌套層級

17._.fromPairs(pairs)返回一個由鍵值對pairs構成的對象。

18._.indexOf(array, value, [fromIndex=0])查詢數組中存在值得索引(默認起始位置0)

19._.initial(array)獲取數組中除了最后一個元素之外的所有元素。

20._.intersection([arrays])返回一個包含所有傳入數組交集元素的新數組。

21._.last(array)獲取array中的最后一個元素。

22._.nth(array, [n=0])獲取array數組的第n個元素。如果n為負數,則返回從數組結尾開始的第n個元素。

23._.pull(array, [values])移除數組array中所有和給定值相等的元素

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

25._.pullAt(array, [indexes])根據索引 indexes,移除array中對應的元素,並返回被移除元素的數組。

26._.remove(array, [predicate=_.identity])移除數組中predicate(斷言)返回為真值的所有元素,並返回移除元素組成的數組。
predicate(斷言) 會傳入3個參數: (value, index, array)。 返回移除元素組成的新數組

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

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

29._.sortedLastIndex(array, value)此方法類似於 _.sortedIndex,除了 它返回 value值 在 array 中插入盡可能大的索引位置(index)。

30._.sortedLastIndexOf(array, value)這個方法類似 _.lastIndexOf,除了它是在已經排序的數組array上執行二進制檢索。

31._.sortedUniq(array)這個方法類似 _.uniq,除了它會優化排序數組。(返回新的不重復的數組)

32._.tail(array)獲取除了array數組第一個元素以外的全部元素。

33._.take(array, [n=1])創建一個數組切片,從array數組的起始元素開始提取n個元素。

34._.takeRight(array, [n=1])創建一個數組切片,從array數組的最后一個元素開始提取n個元素。

35._.union([arrays])創建一個按順序排列的唯一值的數組。(返回一個新的聯合數組)

36._.uniq(array)創建一個去重后的array數組副本。(返回新的去重后的數組)

37._.without(array, [values])創建一個剔除所有給定值的新數組(返回過濾值后的新數組)

二、collection集合

1._.forEach(collection, [iteratee=_.identity])其中函數參數為value,index。

2._.forEachRight(collection, [iteratee=_.identity])

3._.every(collection, [predicate=_.identity])通過 predicate(斷言函數) 檢查 collection(集合)中的 所有 元素是否都返回真值。
一旦 predicate(斷言函數) 返回假值,迭代就馬上停止(檢查后都都返回真值,那么就返回true,否則返回 false)

4._.filter(collection, [predicate=_.identity])

5._.find(collection, [predicate=_.identity], [fromIndex=0])(返回匹配元素,否則返回 undefined)

6._.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])從右到左遍歷

7._.includes(collection, value, [fromIndex=0])檢查 value(值) 是否在 collection(集合) 中

8._.orderBy(collection, [iteratees=[_.identity]], [orders])如果沒指定 orders(排序),所有值以升序排序。
否則,指定為"desc" 降序,或者指定為 "asc" 升序,排序對應值。

9._.partition(collection, [predicate=_.identity])創建一個分成兩組的元素數組,第一組包含predicate(斷言函數)返回為 truthy(真值)的元素,
第二組包含predicate(斷言函數)返回為 falsey(假值)的元素。

10._.sample(collection)從collection(集合)中獲得一個隨機元素。

11._.sampleSize(collection, [n=1])從collection(集合)中獲得 n 個隨機元素。

12._.shuffle(collection)創建一個被打亂值的集合

13._.size(collection)返回collection(集合)的長度,如果集合是類數組或字符串,返回其 length ;
如果集合是對象,返回其可枚舉屬性的個數。

14._.some(collection, [predicate=_.identity])
通過 predicate(斷言函數) 檢查collection(集合)中的元素是否存在 任意 truthy(真值)的元素,
一旦 predicate(斷言函數) 返回 truthy(真值),遍歷就停止。
predicate 調用3個參數:(value, index|key, collection)。

15._.sortBy(collection, [iteratees=[_.identity]])
創建一個元素數組。 以 iteratee 處理的結果升序排序。 這個方法執行穩定排序,也就是說相同元素會保持原始排序。

三、Function

1._.after(n, func)_.before的反向函數;此方法創建一個函數,當他被調用n或更多次之后將馬上觸發func 。

2._.before(n, func)創建一個調用func的函數,通過this綁定和創建函數的參數調用func,調用次數不超過 n 次

3._.curry(func, [arity=func.length])柯里化函數

4._.debounce(func, [wait=0], [options={}])防抖動函數

5._.defer(func, [args])推遲調用func,直到當前堆棧清理完畢

6._.delay(func, wait, [args])延遲 wait 毫秒后調用 func。

7._.once(func)創建一個只能調用 func 一次的函數。 重復調用返回第一次調用的結果。

8._.throttle(func, [wait=0], [options={}])創建一個節流函數,在 wait 秒內最多執行 func 一次的函數

四、Lang

1._.castArray(value)如果 value 不是數組, 那么強制轉為數組。

2._.clone(value)創建一個value的淺拷貝。

3._.cloneDeep(value)深拷貝

4._.conformsTo(object, source)通過調用斷言source的屬性與 object 的相應屬性值,檢查 object是否符合 source。

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

6._.gt(value, other)檢查 value是否大於 other。

7._.gte(value, other)檢查 value是否大於或者等於 other。

8._.isArguments(value)檢查 value 是否是一個類 arguments 對象。

9._.isArray(value)檢查 value 是否是 Array 類對象。

10._.isArrayBuffer(value)檢查 value 是否是 ArrayBuffer 對象。

11._.isBoolean(value)檢查 value 是否是原始 boolean 類型或者對象。

12._.isDate(value)檢查 value 是否是 Date 對象。

13._.isElement(value)檢查 value 是否是可能是 DOM 元素。

14._.isEmpty(value)檢查 value 是否為一個空對象,集合,映射或者set。
判斷的依據是除非是有枚舉屬性的對象,length 大於 0 的 arguments object, array, string 或類jquery選擇器。

15._.isEqual(value, other)執行深比較來確定兩者的值是否相等。

16._.isFinite(value)檢查 value 是否是原始有限數值。

17._.isFunction(value)檢查 value 是否是 Function 對象。

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

19._.isNative(value)檢查 value 是否是一個原生函數。

20._.isNil(value)檢查 value 是否是 null 或者 undefined。

21._.isNull(value)檢查 valuealue 是否是 null。

22._.isObject(value)檢查 value 是否為 Object 的 language type。

23._.isPlainObject(value)檢查 value 是否是普通對象。 也就是說該對象由 Object 構造函數創建,或者 [[Prototype]] 為 null 。

判斷是否是什么的太多了,反正你能想到的都有!!!

24._.lt(value, other)檢查 value 是否小於 other。

25._.lte(value, other)檢查 value 是否小於等於 other。

26._.toInteger(value)轉換 value 為一個整數。

五、Math
_.add
_.ceil(number,[precision=0])根據precision(精度,可為負值)向上舍入number
_.divide
_.floor 向下舍入
_.max
_.maxBy
_.mean 平均值
_.meanBy
_.min
_.minBy
_.multiply
_.round 四舍五入
_.subtract
_.sum 求和
_.sumBy

六、Number

1._.inRange(number, [start=0], end)檢查 n 是否在 start 與 end 之間,但不包括 end。 如果 end 沒有指定,那么 start 設置為0。
如果 start 大於 end,那么參數會交換以便支持負范圍。

2._.random([lower=0], [upper=1], [floating])產生一個包括 lower 與 upper 之間的數。 如果只提供一個參數返回一個0到提供數之間的數。
如果 floating 設為 true,或者 lower 或 upper 是浮點數,結果返回浮點數。

七、Object
1._.assignIn(object, [sources])這個方法類似 _.assign, 除了它會遍歷並繼承原型上的屬性。

2._.findKey(object, [predicate=_.identity])這個方法類似 _.find 。 除了它返回最先被 predicate 判斷為真值的元素 key,而不是元素本身。

3._.keysIn(object)創建一個 object 自身 和 繼承的可枚舉屬性名為數組。

4._.merge(object, [sources])該方法類似 _.assign, 除了它遞歸合並 sources 來源對象自身和繼承的可枚舉屬性到 object 目標對象。

5._.omit(object, [props])反向版 _.pick; 這個方法一個對象,這個對象由忽略屬性之外的object自身和繼承的可枚舉屬性組成。
(可以理解為刪除object對象的屬性)。

6._.pick(object, [props])創建一個從 object 中選中的屬性的對象。

七、Seq

1._.chain(value)創建一個lodash包裝實例,包裝value以啟用顯式鏈模式。要解除鏈必須使用 _#value 方法。

2._.tap(value, interceptor)這個方法調用一個 interceptor 並返回 value。interceptor調用1個參數: (value)。
該方法的目的是 進入 方法鏈序列以便修改中間結果。

八、String

1._.camelCase([string=''])轉換字符串string為 駝峰寫法。

2._.capitalize([string=''])轉換字符串string首字母為大寫,剩下為小寫。

3._.endsWith([string=''], [target], [position=string.length])檢查字符串string是否以給定的target字符串結尾。
position可以指定檢索的位置

4._.escape([string=''])轉義string中的 "&", "<", ">", '"', "'", 和 "`" 字符為HTML實體字符。

5._.escapeRegExp([string=''])轉義 RegExp 字符串中特殊的字符 "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", 和 "|" in .

6._.kebabCase([string=''])轉換字符串string為 kebab case.
就是以-連接

7._.lowerCase([string=''])轉換字符串string以空格分開單詞,並轉換為小寫。

8._.lowerFirst([string=''])轉換字符串string的首字母為小寫。

9._.repeat([string=''], [n=1])重復 N 次給定字符串。

10_.snakeCase([string=''])轉換字符串string為 snake case.
就是以_連接

11._.startCase([string=''])轉換 string 字符串為 start case.
每個單詞的首字母大寫,其余不變。

12._.startsWith([string=''], [target], [position=0])檢查字符串string是否以 target 開頭。

13._.trim([string=''], [chars=whitespace])從string字符串中移除前面和后面的 空格 或 指定的字符。

14._.truncate([string=''], [options={}])截斷string字符串,如果字符串超出了限定的最大值。
被截斷的字符串后面會以 omission 代替,omission 默認是 "..."。
option包含length,omission,separator屬性

15._.unescape([string='']) _.escape的反向版。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM