function getPropByPath(obj, path, strict) {      
  let tempObj = obj;

  path = path.replace(/\[(\w+)\]/g, '.$1'); //将[0]转化为.0

  path = path.replace(/^\./, ''); //去除开头的.


  let keyArr = path.split('.'); //根据.切割

  let i = 0;

  for (let len = keyArr.length; i < len - 1; ++i) {

    if (!tempObj && !strict) break;

      let key = keyArr[i];

    if (key in tempObj) {

      tempObj = tempObj[key];

    } else {

      if (strict) {//开启严格模式,没找到对应key值,抛出错误

        throw new Error('please transfer a valid prop path to form item!');

      }

      break;

    }

  }

  return {

    o: tempObj, //原始数据

    k: keyArr[i], //key值

    v: tempObj ? tempObj[keyArr[i]] : null // key值对应的值

  };
};

相关文章:

  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
  • 2022-02-17
  • 2022-12-23
  • 2021-11-27
  • 2021-12-26
猜你喜欢
  • 2022-12-23
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
相关资源
相似解决方案