Skip to content

常用的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')

Released under the MIT License.