Skip to content
On this page

lodash-get

描述

实现 lodash.get

题解

javascript
function get(obj, path, defaultVal) {
  // do something
  if (!Array.isArray(path)) {
    path = path
      // i===0 是为了解决 `[1].a`,如果第一个是 [], 会出现 ['', '1', 'a']
      .replace(/\[(.*?)\]/g, (_, v, i) => (i === 0 ? v : `.${v}`))
      .split(".");
  }
  let cur = obj;
  for (const k of path) {
    if (typeof cur[k] === "undefined") return defaultVal;
    cur = cur[k];
  }
  return cur;
}