lodash常用指南

转载: 请携带作者并标明出处
归类在项目中 常用的lodash方法
内部大部分方法 可通过es6等处理 这里不做归类

我的还是我的鲁迅

常用lodash指南 Array

去除假值

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

数组 过滤数据 并返回新的数组

1
2
3
4
5
6
// 你可以过滤id
_.difference([3, 2, 1], [4, 2]);
// => [3, 1]

_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
// => [{ 'x': 2 }]

填充 替换

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

获取数据的索引 (第一个)

1
2
3
4
5
6
7
8
9
10
11
12
13
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, { 'user': 'fred', 'active': false });
// => 1
_.findIndex(users, ['active', false]);
// => 0
_.findIndex(users, 'active');
// => 2

同上 反向

1
2
3
4
5
6
7
8
9
10
11
12
13
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
// => 2
_.findLastIndex(users, { 'user': 'barney', 'active': true });
// => 0
_.findLastIndex(users, ['active', false]);
// => 2
_.findLastIndex(users, 'active');
// => 0

数组序列化

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

键值转对象

1
2
_.fromPairs([['fred', 30], ['barney', 40]]);
// => { 'fred': 30, 'barney': 40 }

过滤交集数据

1
2
3
4
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.intersectionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }]

**移除数据

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

**移除数组对象

1
2
3
4
var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
console.log(array);
// => [{ 'x': 2 }]

**移除数组 按索引

1
2
3
4
5
6
var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);
console.log(array);
// => [5, 15]
console.log(evens);
// => [10, 20]