Appearance
常用的lodash函数
deepClone
深拷贝
Parameters:
obj: - 要深拷贝的值
Examples:
ts
let result = deepClone({ name: 'a', person: { age: 18, name: 'b', hobbies: ['sing', 'dance'] } })omit
删除对象中的某些键值对
Parameters:
obj: - 源对象fields: - 需要删除的字段数组ignoreEmpty: - 是否忽略 undefined | null
Examples:
ts
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3,
},
},
c: '',
d: undefined,
}
const cloneObj = omit(obj, ['a'])pick
从对象中取出指定的键值对
Parameters:
obj: - 源对象keys: - 需要取出的键值对ignoreEmpty: - 是否忽略 undefined | null
Examples:
ts
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3,
},
},
}
const cloneObj = pick(obj, ['b'])pickBy
从对象中取出指定的键值对,第二个参数predicate(断言函数)
Parameters:
obj: - 源对象predicate: - 断言函数,判断为真值的属性会被返回
Examples:
ts
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3,
},
},
c: '',
d: undefined,
}
const cloneObj = pickBy(obj, (value) => !!value)omitBy
从对象中去除属性,通过第二个参数predicate(断言函数)
Parameters:
obj: - 源对象predicate: - 断言函数,判断为真值的属性会被去除
Examples:
ts
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3,
},
},
c: '',
d: undefined,
}
const cloneObj = omitBy(obj, (value) => !value)debounce
防抖函数
Parameters:
fn: - 需要防抖的函数delay: - 防抖的时间
Examples:
ts
let handleSearch = () => {}
const debounceSearch = debounce(handleSearch)throttle
节流函数
Parameters:
fn: - 需要节流的函数delay: - 节流的时间
Examples:
ts
let handleSearch = () => {}
const throttleSearch = throttle(handleSearch)uniqueId
生成当前浏览器唯一id
Parameters:
length: -随机数长度 默认16
Examples:
ts
let uid11 = uniqueId(11) //11位
let uid16 = uniqueId() //16位
let uid19 = uniqueId(19) //19 位
let uid32 = uniqueId(32)blobToBase64
将 Blob 对象转换为 base64 字符串
Parameters:
blob: - Blob 对象ignorePrefix: - 是否忽略 dateUrl 前缀
Examples:
ts
let base64 = blobToBase64(blob)
let base64 = blobToBase64(blob, false)get
从对象中获取指定路径的值
Parameters:
object: -对象path: - 指定路径
Examples:
ts
const obj = {
a: { b: { c: 3 } },
}
const value = get(obj, 'a.b.c')