lodash常用api之Array陣列方法篇
阿新 • • 發佈:2019-01-27
_.flattenDeep(array):將array遞迴為一個一維陣列
如果不用lodash,個人的思路就是將array使用JSON.stringify轉化為字串,然後使用字串的replace方法將字元
'['
和']'
去除掉
使用這個方法會方便很多
_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]
_.indexOf(array, value, [fromIndex=0]):返回首次 value 在陣列array中被找到的 索引值**
常用來檢測陣列中是否有某個值,如果沒有這個值就返回的是負值,例子
_.indexOf([3,3], 1);//-1
具體引數:
array (Array): 需要查詢的陣列。
value (*): 需要查詢的值。
[fromIndex=0] (number): 開始查詢的位置,預設從0開始
_.difference(array, [values]) :根據一個數組去過濾另一個數組
如果array中含有[values]中的值,那麼array就去除這些值
例子
_.difference([1,2,3,4],[8,4]); //[1, 2, 3]
- _.without(array, [values]):建立一個剔除所有給定值的新陣列
_.without([2, 1, 2, 3], 1, 2);
// => [3]
- _.drop(array, [n=1]):切除陣列中第n個值前面的所有值
_.drop([8,5,4,2,3],2) //[4, 2, 3]
- _.fill(array, value, [start=0], [end=array.length]):使用新的value值去替換陣列中的從start位置到end位置的值
_.fill([1,2,3,4],'$',1,2) //[1, "$", 3, 4]
- .findIndex(array, [predicate=.identity], [fromIndex=0]):如果陣列的值是鍵值對,可以用該方法返回第一個通過 predicate 判斷為真值的元素的索引值(index
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
_.findIndex(users, ['active', false]);
// => 0
- _.head(array) : 獲取array的第一個值
- _.pull(array, [values]) : array中刪除掉傳入的values
var array = [1, 2, 3, 1, 2, 3];
_.pull(array, 2, 3);
console.log(array);
// => [1, 1]
還有個方法_.pullAll(array, values),與上面不同的是,區別是這個方法接收一個要移除值的陣列。
- .remove(array, [predicate=.identity]) :根據判斷條件移除陣列中的值
var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
return n % 2 == 0;
});
console.log(array);
// => [1, 3]
console.log(evens);
// => [2, 4]
- _.uniq(array):陣列去重
- _.tail(array) :獲取除了第一個以外的所有的值
- _.union([arrays]):陣列的並集
_.union([2], [1, 2]);
// => [2, 1]
- _.unzip(array):陣列分解
var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]
_.unzip(zipped);
// => [['fred', 'barney'], [30, 40], [true, false]]