跳到主要内容

set()

function set(
object,
path,
value): Record<string, any>;

Defined in: object/set.ts:56

设置对象中指定路径的属性值,自动创建不存在的嵌套路径 支持点表示法和方括号表示法的路径,根据下一个路径段类型自动创建数组或对象 例如:路径'a[0].b'会创建数组和对象结构

Parameters

ParameterTypeDescription
objectRecord<string, any>要修改的对象,会被原地修改
pathstring属性路径字符串,支持格式如 'a.b[0].c' 或 'a[1].b'
valueany要设置的值

Returns

Record<string, any>

修改后的对象(与输入对象是同一引用)

Examples

const obj = {};
set(obj, 'a.b.c', 1);
// obj 变为 { a: { b: { c: 1 } } }
const arr = [];
set(arr, '[0].name', 'test');
// arr 变为 [{ name: 'test' }]
set({ a: 1 }, 'a.b', 2);
// 返回 { a: { b: 2 } }(覆盖原属性值)
**Note:** 函数会原地修改输入对象,而非创建新对象
**Note:** 路径中的数字索引会创建数组,其他情况创建普通对象
**Note:** 空路径段(如'a..b')会被忽略