object

Source: index.js:6

对象处理工具函数


Static Methods

deepClone(value: Value): Value

使用结构化克隆算法深拷贝值。支持循环引用、Map、Set、Date、RegExp、ArrayBuffer 和类型化数组;函数、Symbol、WeakMap、WeakSet 及 DOM 节点不可克隆。

Parameters

  • value (Value) — 要克隆的值

Returns

  • Value — 与输入不共享可变引用的克隆值

Throws

  • DOMException — value 包含结构化克隆不支持的值时抛出 DataCloneError

defaults(...objects: Object): Object

用后续对象中的默认值填充缺失或值为 undefined 的属性。

Parameters

  • objects (Object) — 要合并的对象

Returns

  • Object — 新对象,不修改任何输入对象

Throws

  • TypeError — 参数不是对象时抛出

extendObj(...arg: Object): Object

深拷贝合并多个对象,后面的对象覆盖前面的同名属性。

Parameters

  • arg (Object) — 要合并的对象

Returns

  • Object — 合并后的新对象

Throws

  • TypeError — 输入包含不可结构化克隆的值时抛出

getPath( object: Object, path: string | number | Array.<(string|number)>, defaultValue?: *, ): *

根据点号或括号路径读取嵌套属性。

Parameters

  • object (Object) — 要读取的对象
  • path (string | number | Array.<(string|number)>) — 属性路径
  • defaultValue (*, optional) — 路径不存在或值为 undefined 时的默认值

Returns

  • * — 属性值或默认值

Throws

  • TypeError — path 类型不正确时抛出

hasPath( object: Object, path: string | number | Array.<(string|number)>, ): boolean

判断对象是否包含完整的自有属性路径。

Parameters

Returns

  • boolean — 路径完整存在时为 true

Throws

  • TypeError — path 类型不正确时抛出

isEqual(first: *, second: *): boolean

深度比较两个值,支持循环引用、Map、Set、Date 和 RegExp。

Parameters

  • first (*) — 第一个值
  • second (*) — 第二个值

Returns

  • boolean — 两个值深度相等时为 true

mapValues(object: Object, iteratee: function): Object

使用转换函数生成对象的新属性值。

Parameters

  • object (Object) — 要转换的对象
  • iteratee (function) — 转换函数,参数为值、键和原对象

Returns

  • Object — 转换后的新对象

Throws

  • TypeError — 参数类型不正确时抛出

merge(...objects: Object): Object

深度合并多个普通对象,不修改任何输入对象。

Parameters

  • objects (Object) — 要合并的对象

Returns

  • Object — 合并后的新对象

Throws

  • TypeError — 参数不是普通对象时抛出

omit(object: Object, keys: Array.<string>): Object

创建一个排除指定顶层属性的新对象。

Parameters

  • object (Object) — 原对象
  • keys (Array.<string>) — 要排除的属性名

Returns

  • Object — 新对象,不修改原对象

Throws

  • TypeError — 参数类型不正确时抛出

pick(object: Object, keys: Array.<string>): Object

创建一个仅包含指定顶层属性的新对象。

Parameters

  • object (Object) — 原对象
  • keys (Array.<string>) — 要保留的属性名

Returns

  • Object — 新对象,不修改原对象

Throws

  • TypeError — 参数类型不正确时抛出

setPath( object: Object, path: string | number | Array.<(string|number)>, value: *, ): Object

按路径设置嵌套属性并返回新对象,输入对象保持不变。

Parameters

  • object (Object) — 原对象
  • path (string | number | Array.<(string|number)>) — 属性路径
  • value (*) — 要设置的值

Returns

  • Object — 设置后的新对象

Throws

  • TypeError — object 或 path 类型不正确时抛出