1. Lodash是什么?
是一個(gè)具有一致接口、模塊化求冷、高性能等特性的 JavaScript 工具庫(kù)。
2.關(guān)于數(shù)組的一些方法:
_.chunk(array,[size=1])
將 array 拆分成多個(gè) size 長(zhǎng)度的塊窍霞,把這些塊組成一個(gè)新數(shù)組匠题。
如果 array 無法被分割成全部等長(zhǎng)的塊,那么最后剩余的元素將組成一個(gè)塊但金。
栗子:
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
_.compact() 返回過濾假值之后的數(shù)組
假值:false韭山、null、 0冷溃、""钱磅、undefined 和 NaN
栗子:
_.compact([0,false,'',1,2])
// =>[1,2]
_.find(collection, [predicate=_.identity], [fromIndex=0])
_.difference() 返回過濾掉的數(shù)組
栗子:
_.difference([1,2,3],[2]) //第二個(gè)參數(shù)是需要過濾掉的值
// =>[1,3]
_.drop(array,[n=1]) 去掉前n個(gè)元素,返回剩余的值
栗子:
_.drop([1,2,3],2) //默認(rèn)是從1開始的
// =>[3]
_.dropRight(array,[n=1]) 去掉數(shù)組尾部n個(gè)元素
栗子:
_.dropRight([1,2,3],2)
// =>[1]
_.fill(array,value,[start=0],[end=array.length]) //改變數(shù)組的一個(gè)方法
value是需要加到數(shù)組的內(nèi)容似枕,從start的位置開始 盖淡,end位置結(jié)束但不包括end
栗子:
_.fill([1,2,3],'a',1,2)
// =>[1,'a',3]
_.findIndex(array, [predicate=_.identity], [thisArg])
//返回符合查詢條件的元素的索引值, 未找到則返回 -1
栗子:
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(chr) {
return chr.user == 'barney';
});
// => 0
_.findLastIndex(array, [predicate=_.identity], [thisArg]) //從右到左循環(huán)遍歷
//返回匹配數(shù)組元素的索引值, 否則返回 -1
_.first() //返回?cái)?shù)組第一個(gè)元素
_.indexOf() //返回元素在數(shù)組中索引的位置
栗子:
_.indexOf([1,2,3,2],2)
// => 1
_.initial() //去除數(shù)組中最后一個(gè)元素
栗子:
_.initial([1,2,3,4])
// => [1,2,3]
_.intersection() //取出各數(shù)組中全等的元素
栗子:
_.intersection([1,2],[2,3])
// =>[2]
_.last() //返回最后一個(gè)元素
栗子:
_.last([1,2,3])
// => 3
_.lastIndexOf()
//和_.indexOf() 類似,只不過是從右往左循環(huán)數(shù)組 索引從1開始
_.pull(array,[values]) //移除數(shù)組中所有和values相等的元素
栗子:
var array=[1,2,3,2,3,1]
_.pull(array,2,3)
// => [1,1]
_.remove() //返回被移除元素組成的新數(shù)組
栗子:
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]
_.rest() //獲取第一個(gè)元素除外的所有元素
栗子:
_.rest([1,2,3])
// => [2,3]
_.slice(array,[start=0],[end=array.length])
//截取從start位置到end但不包括end位置的元素
栗子:
_.slice([1,2,3.4],1,3)
// => [1,4]
_.take(array,[n=1]) 從數(shù)組的起始位置1開始取n個(gè)元素凿歼,返回的是取得的元素的數(shù)組
栗子:
_.take([1,2,3,4],2)
// => [1,2]
_.takeRight() //和_.take()類似褪迟,只不過是從右往左循環(huán)遍歷數(shù)組
_.union() //按照順序冗恨,從所有提供的數(shù)組中創(chuàng)建一個(gè)惟一值數(shù)組
栗子:
_.union([1,2][2,4],[1,4])
// => [1,2,4]
_.uniq() //返回?zé)o重復(fù)值的新數(shù)組
栗子:
_.uniq([1,2,2])
// => [1,2]
_.without() //返回過濾后的新數(shù)組
栗子:
_.without([1,2,1,2,3],1)
// => [2,2,3]
_.zipObject() //返回 一個(gè)新的對(duì)象
栗子:
_.zipObject([['fred', 30], ['barney', 40]]);
// => { 'fred': 30, 'barney': 40 }