实现一个函数 get(obj, path, defaultValue),根据路径获取对象属性值,如果属性不存在则返回默认值

推荐答案

-- -------------------- ---- -------
-------- -------- ----- ------------- -
  -- -----------
  ----- ---- - ------------------- - ---- - ----------------

  -- -------------
  --- ------ - ----
  --- ------ --- -- ----- -
    -- ------- -- ------ ------ --- -------- -- --- -- ------- -
      ------ - ------------
    - ---- -
      ------ -------------
    -
  -

  ------ ------ --- --------- - ------ - -------------
-

本题详细解读

1. 函数功能

get 函数的作用是从一个嵌套的对象中根据给定的路径获取属性值。如果路径不存在或属性值为 undefined,则返回默认值。

2. 参数说明

  • obj: 目标对象,可以是任意嵌套的对象。
  • path: 路径,可以是字符串(如 'a.b.c')或数组(如 ['a', 'b', 'c'])。
  • defaultValue: 默认值,当路径不存在或属性值为 undefined 时返回。

3. 实现思路

  1. 路径解析:首先将路径字符串转换为数组形式,方便遍历。如果路径已经是数组,则直接使用。
  2. 遍历路径:通过遍历路径数组,逐步深入对象,获取对应的属性值。
  3. 边界处理:在遍历过程中,如果发现当前对象不存在或当前属性不存在,则直接返回默认值。
  4. 返回结果:如果最终获取到的值不是 undefined,则返回该值;否则返回默认值。

4. 示例

5. 注意事项

  • 路径中的 . 会被解析为对象的嵌套层级。
  • 如果路径是数组形式,则直接按数组顺序访问对象属性。
  • 如果路径不存在或属性值为 undefined,函数会返回默认值。
纠错
反馈