lodash使用方法大全

一、数组方法总结
(1)chunk:将数组切割,变为二位数组
例: var arr = [1, 2, 3, 4]
var chunkArr = _.chunk(arr, 2)
console.log(‘chunkArr:’, chunkArr)
输出结果:[[1, 2], [3, 4]]

(2)compact: 去除假值
例: var arr = [1, 3, 0, NaN, undefined, ‘’, 9]
var compactArr = _.compact(arr)
console.log(‘compactArr:’, compactArr)
输出结果:[1, 3, 9]

(3)uniq: 数组去重
例:var arr = [1, 1, 3, 6, 6, 9, 4, 9]
var uniqArr = _.uniq(arr)
console.log(‘uniqArr:’, uniqArr)
输出结果: [1, 3, 6, 9, 4]

(4)reject: 根据条件去除数组元素
例:var arr = [
{ id: 1, name: ‘李狗蛋’ },
{ id: 2, name: ‘叶良辰’ },
{ id: 3, name: ‘赵日天’ },
]
var rejectArr = _.reject(arr, [‘name’, ‘叶良辰’])
console.log(‘rejectArr:’, rejectArr)
输出结果:[ { id: 1, name: ‘李狗蛋’ }, { id: 3, name: ‘赵日天’ }, ]

(5)shuffle: 数组无序化
例: var arr = [1, 2, 3, 4, 5, 6]
var shuffleArr = _.shuffle(arr)
console.log(‘shuffleArr:’, shuffleArr)
输出结果:{id: 111, name: “龙傲天”}

(6)pick: 对象中筛选属性
例: var arr = { id: 111, name: ‘龙傲天’, age: 18 }
var pickArr = _.pick(arr, [‘id’, ‘name’])
console.log(‘pickArr:’, pickArr)
输出结果:{id: 111, name: “龙傲天”}

(7)keys: 得到对象中所有的属性名,以数组的方式保存
例: var obj = { id: 0, name: ‘陈车仔’, age: ‘One year’ }
var arr = _.keys(obj)
console.log(arr)
输出结果:[“id”, “name”, “age”]

(8)cloneDeep: 深拷贝
例: var obj = { id: 0, name: ‘陈车仔’, age: ‘One year’ }
var cloneDeepObj = _.cloneDeep(obj)
cloneDeepObj.name = ‘陈乌冬’
console.log(‘obj:’, obj, ‘cloneDeepObj’, cloneDeepObj)
输出结果:obj: {id: 0, name: “陈车仔”, age: “One year”}
cloneDeepObj {id: 0, name: “陈乌冬”, age: “One year”}

(9)merge: 合并
例: var obj1 = { a: [{ one: 1, two: 2 }] }
var obj2 = { b: [{ three: 3, four: 4 }] }
var mergeObj = _.merge(obj1, obj2)
console.log(‘mergeObj:’, mergeObj)
输出结果:{ a: [{ one: 1, two: 2 }],b: [{ three: 3, four: 4 }] }

(10)sample: 随机获取数组中的一个元素
例: var arr = [‘小白’, ‘小崽’, ‘金黑’, ‘小美’, ‘小五’]
var sampleStr = _.sample(arr, 1)
console.log(‘sampleStr:’, sampleStr)
输出结果:小白

(11)keyBy: 根据key值将数组转化为对象
例: var arr = [
{ id: 1, name: ‘李狗蛋’ },
{ id: 2, name: ‘叶良辰’ },
{ id: 3, name: ‘赵日天’ },
]
var keyByObj = _.keyBy(arr, ‘name’)
console.log(‘keyByObj:’, keyByObj)
输出结果: {
叶良辰: {id: 2, name: “叶良辰”}
李狗蛋: {id: 1, name: “李狗蛋”}
赵日天: {id: 3, name: “赵日天”}
}

(12)map: 将数组中属性名对应的属性值筛选为新的数组
例: var arr = [
{ id: 1, name: ‘李狗蛋’ },
{ id: 2, name: ‘叶良辰’ },
{ id: 3, name: ‘赵日天’ },
]
var MapArr = _.map(arr, ‘name’)
console.log(‘MapArr:’, MapArr)
输出结果: [“李狗蛋”, “叶良辰”, “赵日天”]

(13)flatten: 数组扁平化(flatten:去掉一层, flattenDeep: 彻底扁平化)
例: var arr = [1, 2, [3, 4, [5, 6]]]
var flattenArr1 = _.flatten(arr)
var flattenArr2 = _.flattenDeep(arr)
console.log(‘flattenArr1:’, flattenArr1, ‘flattenArr2’, flattenArr2)
输出结果: flattenArr1: (5) [1, 2, 3, 4, Array(2)] flattenArr2 (6) [1, 2, 3, 4, 5, 6]

(14).max/.min/.sum 数组中最大值,最小值,求和

二、节流防抖
import _ from ‘lodash’;
(1)节流:
_.throttle(函数方法function,时间)
例:btnHandle: _.throttle(function () {
console.log(‘点击了节流’)
}, 1000)
(2)防抖
_.debounce(函数方法function,时间)
例: btnHandle: _.debounce(function () {
console.log(‘点击了防抖’)
}, 1000)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值