ES6 获取复杂嵌套对象中某个key对应的value

最近在做一个复杂的需求,根据复杂的数据结构,自动生成界面,然后其中有个小功能:获取复杂嵌套对象中某个key对应的value。虽然这个功能很常见,但是网上没看到什么特别好的方法,要么方法太老,要么就是代码冗长不够优雅。 然而这个小功能会在多处都用到,所以就封装成了通用方法,在这里分享一下。(我这里使用的是typescript)

// 判断是否为对象
const isObject = (obj: any) => {
  return Object.prototype.toString.call(obj) === "[object Object]";
};

// 获取嵌套对象属性的值
const getValue = (data: any, target: string): any => {
  for (const key of Object.keys(data)) {
    if (key === target) {
      return data[key];
    }
    if (isObject(data[key])) {
      const result = getValue(data[key], target);
      if (typeof result !== "undefined") {
        return result;
      }
    }
  }
};

 

你可能感兴趣的:(Javascript,前端技术)