天天看點

lodash速覽:數組方法(一)

1、_.chunk(array, [size]):将一個數組按照一定的長度分割為N個數組。

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

2、_.compact(array):過濾數組中布爾值為false的值,如false, null, 0, "", undefined, and NaN。

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

3、_.concat(array, [values]):數組連接配接,傳回新數組。values裡的數組将被降維拉伸。

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);        // => [1, 2, 3, [4]]
           

4、_.difference(array, [values]):将數組裡值不相同的項找到并組成一個新的數組。

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

相似方法:

_.differenceBy(array, [values], [iteratee=_.identity]):跟difference相似,但可以接收一個疊代函數。

_.differenceWith(array, [values], [comparator]):跟difference相似,但可以接收一個比較函數。

5、_.drop(array, [n=1]):删除數組的前N項。

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

相似方法:

_.dropRight(array, [n=1]):删除數組的後N項。

_.dropRightWhile(array, [predicate=_.identity]):接收一個過濾參數,将不合格的數組項删除。

_.dropWhile(array, [predicate=_.identity]):用法同上,一個從尾部開始比較,一個從頭部開始比較。

6、_.fill(array, value, [start=0], [end=array.length]):填充數組,将數組的第start項到第end項填充為value。

_.fill([4, 6, 8, 10], '*', 1, 3);        // => [4, '*', '*', 10]
           

7、_.findIndex(array, [predicate=_.identity], [fromIndex=0]):從fromIndex開始查找數組中符合篩選條件的值的下标。

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(o) { return o.user == 'barney'; });        // => 0
           

相似方法:

_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1]):從尾部開始查找。

8、_.flatten(array):将數組降一個次元進行拉伸。

_.flatten([1, [2, [3, [4]], 5]]);        // => [1, 2, [3, [4]], 5]
           

相似方法:

_.flattenDeep(array):将數組完全拉伸。

_.flattenDepth(array, [depth=1]):将數組降n維進行拉伸。

9、_.fromPairs(pairs):将數組轉為key-value的對象。

_.fromPairs([['a', 1], ['b', 2]]);        // => { 'a': 1, 'b': 2 }
           

互補方法:

_.toPairs(object):将對象轉為一個key-value的數組。

10、_.head(array):傳回數組的第一項。

_.last(array):傳回數組的最後一項。

11、_.indexOf(array, value, [fromIndex=0]):查找某個值在數組的下标。

_.**lastIndexOf**(array, value, [fromIndex=array.length-1]):從後往前查找。
           

12、_.initial(array):擷取數組除最後一項的所有值,相當于删除最後一項。

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

13、_.intersection([arrays]):找出相同的數組項。将數組裡值相同的項找到并組成一個新的數組。

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

相似方法:

_.intersectionBy([arrays], [iteratee=_.identity]):略。

_.intersectionWith([arrays], [comparator]):略。

互補方法:

_.difference(array, [values]):見上面第4條。

_.differenceBy(array, [values], [iteratee=_.identity]):見上面第4條。

_.differenceWith(array, [values], [comparator]):見上面第4條。

14、_.join(array, [separator=',']):數組拼接成字元串。類原生.join方法。

_.**reverse**(array):翻轉數組,類似原生。
_.**slice**(array, [start=0], [end=array.length]):數組從start項到end項切割成一個新數組。類似原生。
           

15、_.nth(array, [n=0]):取出數組的第n項。類似原生array[n]。

16、_.pull(array, [values]):從一個數組中删除某些value。

var array = ['a', 'b', 'c', 'a', 'b', 'c'];
_.pull(array, 'a', 'c');
console.log(array);        // => ['b', 'b']
           

相似方法:

_.pullAll(array, values):參數可以接收一個數組。

_.pullAllBy(array, values, [iteratee=_.identity]):參數可以接收過濾函數。

_.pullAllWith(array, values, [comparator]):略。

_.pullAt(array, [indexes]):删除數組的下标對應的值。

17、_.remove(array, [predicate=_.identity]):删除數組中符合條件的項。