set()
function set(
object,
path,
value): Record<string, any>;
Defined in: object/set.ts:56
设置对象中指定路径的属性值,自动创建不存在的嵌套路径 支持点表示法和方括号表示法的路径,根据下一个路径段类型自动创建数组或对象 例如:路径'a[0].b'会创建数组和对象结构
Parameters
| Parameter | Type | Description |
|---|---|---|
object | Record<string, any> | 要修改的对象,会被原地修改 |
path | string | 属性路径字符串,支持格式如 'a.b[0].c' 或 'a[1].b' |
value | any | 要设置的值 |
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')会被忽略