安装:
vue中使用
npm i lodash -S
单个html使用
<script src="https://cdn.bootcss.com/lodash.js/4.17.12-pre/lodash.min.js"></script>
数组API
数组拼接
_.concat(数组,被拼接的数组)// 数组拼接 返回值:新数组
// 示例
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
数组去值
_.difference(数组,要排除的值(为一个数组)) // 数组过滤 返回值:新数组
// 示例
_.difference([3, 2, 1], [4, 2]);
// => [3, 1]
数组头(尾)部去除区间
_.drop(array,n) // 去除array前面的n个元素,n代表去除元素的个数
_dropRight(array,n)// 去除array尾部的n个元素,n代表去除元素的个数
// 实例
_.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]
数组对象过滤
_.dropRightWhile(array,参数2) // 参数2可以为函数,也可以为过滤的某个值 返回值为剩余部分
// 示例
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.dropRightWhile(users, function(o) { return !o.active; });
// => objects for ['barney']
// The `_.matches` iteratee shorthand.
_.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['barney', 'fred']
// The `_.matchesProperty` iteratee shorthand.
_.dropRightWhile(users, ['active', false]);
// => objects for ['barney']
// The `_.property` iteratee shorthand.
_.dropRightWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
数组替换某个区间全部为...
_.fill(array,value,区间) // 会改变原数组,从开始位置进行替换到结束位置,不包含结束位置 修改原数组
// 示例【起始位置默认为0,终止位置默认为数组长度】
var array = [1, 2, 3];
_.fill(array, 'a');
console.log(array);
// => ['a', 'a', 'a']
_.fill(Array(3), 2);
// => [2, 2, 2]
_.fill([4, 6, 8, 10], '*', 1, 3);
// => [4, '*', '*', 10]
数组对象查找(正向反向)
_.findIndex(array,参数2) // 找到返回下标,找不到返回-1,类似于indexof
_.findLastIndex(array,参数2)// 反向查找 类似于lastindexof
// 示例
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
// The `_.matches` iteratee shorthand.
_.findIndex(users, { 'user': 'fred', 'active': false });
// => 1
// The `_.matchesProperty` iteratee shorthand.
_.findIndex(users, ['active', false]);
// => 0
// The `_.property` iteratee shorthand.
_.findIndex(users, 'active');
// => 2
数组删除某些值
_.pull(array, values) // 删除数组里面与value值相同的元素
_.pullAll(array,values)// 两者无差别,但是第二个参数为数组
// 示例
var array = [1, 2, 3, 1, 2, 3];
_.pull(array, 2, 3);
console.log(array);
// => [1, 1]
获取除了第一个元素以外的元素
_.tail(array) //
// 示例
_.tail([1, 2, 3]);
// => [2, 3]
从数组里面的起始(终止)元素开始提取n个元素
_.take(array,num) // num代表偏移量
_takeRight(array,num) // num代表偏移量
// 示例
_.take([1, 2, 3]);
// => [1]
_.take([1, 2, 3], 2);
// => [1, 2]
_.take([1, 2, 3], 5);
// => [1, 2, 3]
_.take([1, 2, 3], 0);
// => []
剔除所有给定的新数组
_.without(array,num...) // 在array当中剔除所有num的元素并返回新的数组
// 示例
_.without([2, 1, 2, 3], 1, 2);
// => [3]
集合:类似于对象和数组都可以用的API
_forEach遍历返回(从左往右)【从右向左】
_([1,2]).forEach(function(value){
console.log(value)
})
// 先1,后2
_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
console.log(key);
});
// => Logs 'a' then 'b
_.forEachRight([1, 2], function(value) {
console.log(value);
});
// => Logs `2` then `1`.
_partition把一段数据进行分割,返回值为两个数组,第一个数组为条件为真的数据,第二个数组为假的数据
_partition(参数,函数/判断依据)
// 示例
var users = [
{ 'user': 'barney', 'age': 36, 'active': false },
{ 'user': 'fred', 'age': 40, 'active': true },
{ 'user': 'pebbles', 'age': 1, 'active': false }
];
_.partition(users, function(o) { return o.active; });// 函数型
// => objects for [['fred'], ['barney', 'pebbles']]
// The `_.matches` iteratee shorthand.
_.partition(users, { 'age': 1, 'active': false });// 判断依据型
// => objects for [['pebbles'], ['barney', 'fred']]
// The `_.matchesProperty` iteratee shorthand.
_.partition(users, ['active', false]);
// => objects for [['barney', 'pebbles'], ['fred']]
// The `_.property` iteratee shorthand.
_.partition(users, 'active');
// => objects for [['fred'], ['barney', 'pebbles']]
_reigect:对集合做一个判断,返回值为与判断相反的数据
_reiject(参数,函数/判断依据)
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']
_.sample:获取集合里面的一个随机元素
_.sample(集合)
// 示例
_.sample([1, 2, 3, 4]);
// => 2
_.sampleSize:获取集合里面n个随机元素
_.sampleSize(集合,n); // 获取集合里面n个元素,返回一个数组
// 示例
_.sampleSize([1, 2, 3], 2);
// => [3, 1]
_.sampleSize([1, 2, 3], 4);
// => [2, 3, 1]
_.shuffle:随机打乱顺序,返回被打乱之后的数组
_.shuffle(集合)
// 示例
_.shuffle([1, 2, 3, 4]);
// => [4, 1, 3, 2]
_.some:类似于数组indexof,查找元素,返回布尔值
_.some(集合,需要查找的数据/判断)
// 示例
_.some([null, 0, 'yes', false], Boolean);
// => true
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false }
];
// The `_.matches` iteratee shorthand.
_.some(users, { 'user': 'barney', 'active': false });
// => false
// The `_.matchesProperty` iteratee shorthand.
_.some(users, ['active', false]);
// => true
// The `_.property` iteratee shorthand.
_.some(users, 'active');
// => true
函数:
_.after:在调用n次之后执行
var saves = ['profile', 'settings'];
var done = _.after(saves.length, function () {
console.log('done saving!');
});
done()
done()
语言:
_.castArray:强制转换数组
_.castArray(value) // 返回值为一个数组
// 示例
_.castArray(1);
// => [1]
_.castArray({ 'a': 1 });
// => [{ 'a': 1 }]
_.castArray('abc');
// => ['abc']
_.castArray(null);
// => [null]
_.castArray(undefined);
// => [undefined]
_.castArray();
// => []
var array = [1, 2, 3];
console.log(_.castArray(array) === array);
// => true
_.clone:浅拷贝
_.clone(value) //返回被拷贝之后的东西
// 示例
var objects = [{ 'a': 1 }, { 'b': 2 }];
var shallow = _.clone(objects);
console.log(shallow[0] === objects[0]);
_.cloneDeep:深拷贝/递归拷贝
_.clooneDeep(value) // 拷贝之后的东西
// 示例
ar objects = [{ 'a': 1 }, { 'b': 2 }];
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false
_.isArray:判断是否是一个数组
_.isArray(value) // 返回布尔值
// 示例
_.isArray([1, 2, 3]);
// => true
_.isArray(document.body.children);
// => false
_.isArray('abc');
// => false
_.isArray(_.noop);
// => false
_isBoolean:判断是否是布尔类型或者对象
_.isBoolean(value) // 返回布尔值
// 示例
_.isBoolean(false);
// => true
_.isBoolean(null);
// => false
_.isData:判断是否是日期对象
_.isData(value) // 返回布尔值
// 示例
_.isDate(new Date);
// => true
_.isDate('Mon April 23 2012');
// => false
_.isElement:判断是否可能是DOM元素
_.isElement(value)// 返回布尔值
// 示例
_.isElement(document.body);
// => true
_.isElement('<body>');
// => false
_.isInteget:判断是否是一个整数
_.isInteger(value) // 返回布尔值
// 示例
_.isInteger(3);
// => true
_.isInteger(Number.MIN_VALUE);
// => false
_.isInteger(Infinity);
// => false
_.isInteger('3');
// => false
_.toArray:转换为一个数组
_.toArray(value)
_.toArray({ 'a': 1, 'b': 2 });
// => [1, 2]
_.toArray('abc');
// => ['a', 'b', 'c']
_.toArray(1);
// => []
_.toArray(null);
// => []