关于Lodash{操作,常用}

安装:

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);
// => []

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值