数组
1.【last】获取数组中最后一个元素
let arr = [1, 2, 3, 4, 5]
let lastElement = _.last(arr)
console.log(lastElement)
2. 【nth】 获取数组中倒数第二个元素
let arr = [1, 2, 3, 4, 5]
let lastSecondElement = _.nth(-2)
console.log(lastSecondElement)
3. 【uniq】 去重
let arr = [2, 1, 2, '2', true]
let uniqArr = _.uniq(arr)
console.log(uniqArr)
4. 【uniqBy】 数组对象去重(根据对象中某个参数)
let uniqArr = _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x')
console.log(uniqArr)
5. 【uniqWith】 数组对象去重(对象本身)
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.uniqWith(objects, _.isEqual);
6.【zipObject】通过数组[“x”, “y”] 和 数组[10, 10] 创建对象 {x: 10, y: 10}
let keys = ["x", "y"]
let values = [10, 10]
let obj = _.zipObject(keys, values)
console.log(obj)
7.【flatten】脱掉一层
_.flatten([1, [2, [3, [4]], 5]])
[1, [2, [3, [4]], 5]].flat(默认参数为1 最大 Infinity)
let address = {
'江苏省': ['南京市', '苏州市'],
'浙江省': ['杭州市', '绍兴市']
}
let cities = _.flatten(_.values(address))
console.log(cities)
10.【intersection】所有数组的交集
_.intersection([2, 1], [4, 2], [1, 2]);
11.intersectionBy
const arr = intersectionBy(delArr1, delArr2, 'id')
_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
12.【join】
_.join(['a', 'b', 'c'], '~');
对象
1.Get
import { get } from 'lodash'
const a1 = get(nextProps, 'treeVal', undefined)
2.【merge】合并多个对象中key值相同的键值对
let obj1 = {'9': {name: '乐购超市'}}
let obj2 = {'9': {storeToken: 'xxx'}}
let obj3 = {'9': {storePosition: 'Hangzhou'}}
let mergedObj = _.merge(obj1, obj2, obj3)
console.log(mergedObj)
3.【omit】根据某一key进行删除
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omit(object, ['a', 'c']);
4.【omitBy】
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omitBy(object, _.isNumber);
集合
1.排序 【orderBy】(对象数组,根据对象中的某个属性的值,升序或降序排序)
let users = [
{user: 'Tom', age: 25},
{user: 'Amy', age: 23},
{user: 'Perter', age: 22},
{user: 'Ben', age: 29}
]
let sortedUsers = _.orderBy(users, 'age', 'desc')
console.log(sortedUsers)
2.【groupBy】合并某一key的value相同的对象
_.groupBy([6.1, 4.2, 6.3], Math.floor);
_.groupBy(['one', 'two', 'three'], 'length');
函数
1.【throttle】
throttle(function () {
})
}, 1000, { leading: true, trailing: false })