get()
function get<T>(
obj,
path,
defaultValue?
): T;
Defined in: packages/utils/src/object/get.ts:35
安全读取点号、方括号或逗号分隔的嵌套路径
解析顺序:先把整个 path 当作字面量键(只按 ,[] 切分,点号保留在键名里),
命中则直接返回;未命中才回退到嵌套路径(按 ,[]. 切分)。
因此 get({ 'a.b': 1, a: { b: 2 } }, 'a.b') 得到 1。
命中判定逐段用 in,与值本身无关:0、false、''、NaN
以及等于根对象的自引用都算命中,只有读到的值是 undefined
或路径中断(段不存在 / 中途为 null)才返回 defaultValue。
Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
T | unknown | 调用方期望的返回类型 |
Parameters
| Parameter | Type | Description |
|---|---|---|
obj | unknown | 要查询的值 |
path | string | 属性路径 |
defaultValue? | T | 路径不存在时的默认值 |
Returns
T
路径值或默认值
Example
get({ a: [{ b: { c: 1 } }] }, 'a[0].b.c'); // 1
get({ 'a.b': 0 }, 'a.b', 'D'); // 0
get({ a: null }, 'a.b', 'D'); // 'D'