lodash經常使用工具函數總結

lodashunderscore是如今很是流行的兩個javascript庫,提供了一套函數式編程的實用功能。lodash是一套工具庫,內部封裝了不少字符串、數組、對象等常見數據類型的處理函數。javascript

下面介紹一下經常使用的函數java

_.chunk(array, [size=1])

定義編程

將數組(array)拆分紅多個 size 長度的區塊,並將這些區塊組成一個新數組。 若是array 沒法被分割成所有等長的區塊,那麼最後剩餘的元素將組成一個區塊。數組

參數ide

array (Array): 須要處理的數組
[size=1] (number): 每一個數組區塊的長度函數式編程

返回函數

(Array): 返回一個包含拆分區塊的新數組(至關於一個二維數組)。工具

示例code

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]

_.compact(array)

定義對象

建立一個新數組,包含原數組中全部的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被認爲是「假值」。

參數

array (Array): 待處理的數組

返回

(Array): 返回過濾掉假值的新數組

示例

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]

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

定義

建立一個切片數組,去除array前面的n個元素。(n默認值爲1。)

參數

array (Array): 要查詢的數組。
[n=1] (number): 要去除的元素個數。

返回

(Array): 返回array剩餘切片。

示例

_.drop([1, 2, 3]);
// => [2, 3]
 
_.drop([1, 2, 3], 2);
// => [3]
 
_.drop([1, 2, 3], 5);
// => []
 
_.drop([1, 2, 3], 0);
// => [1, 2, 3]

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

定義

返回首次 value 在數組array中被找到的 索引值, 若是 fromIndex 爲負值,將從數組array尾端索引進行匹配。

參數

array (Array): 須要查找的數組。
value (*): 須要查找的值。
[fromIndex=0] (number): 開始查詢的位置。

返回

(number): 返回 值value在數組中的索引位置, 沒有找到爲返回-1。

示例

_.indexOf([1, 2, 1, 2], 2);
// => 1
 
// Search from the `fromIndex`.
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3

_.uniq(array)

定義

建立一個去重後的array數組副本。只有第一次出現的元素纔會被保留。

參數

array (Array): 要檢查的數組。

返回

(Array): 返回新的去重後的數組。

示例

_.uniq([2, 1, 2]);
// => [2, 1]

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

定義

遍歷 collection(集合)元素,返回 predicate(斷言函數)返回真值 的全部元素的數組。 predicate(斷言函數)調用三個參數:(value, index|key, collection)。

參數

collection (Array|Object): 一個用來迭代的集合。
[predicate=_.identity] (Array|Function|Object|string): 每次迭代調用的函數。

返回

(Array): 返回一個新的過濾後的數組。

示例

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// The `_.matches` iteratee shorthand.
_.filter(users, { 'age': 36, 'active': true });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
 
// The `_.property` iteratee shorthand.
_.filter(users, 'active');

_.reject(collection, [predicate=_.identity])

定義

_.filter的反向方法;此方法 返回 predicate(斷言函數) 不 返回 true(真值)的collection(集合)元素(非真)。

參數

collection (Array|Object): 用來迭代的集合。
[predicate=_.identity] (Array|Function|Object|string): 每次迭代調用的函數。

返回

(Array): 返回過濾後的新數組

示例

var users = [
  { 'user': 'barney', 'age': 36, 'active': false },
  { 'user': 'fred',   'age': 40, 'active': true }
];
 
_.reject(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// `_.matches` 迭代簡寫
_.reject(users, { 'age': 40, 'active': true });
// => objects for ['barney']
 
// `_.matchesProperty` 迭代簡寫
_.reject(users, ['active', false]);
// => objects for ['fred']
 
// `_.property` 迭代簡寫
_.reject(users, 'active');
// => objects for ['barney']
相關文章
相關標籤/搜索