js动态获取对象二级(多级)属性(值)-通用方法

2020-03-30  本文已影响0人  初心不改_0055

需求:a,b可以为变量,取到b的值1;

var obj = {
    a: {
        b: 1
    }
};
var key = "a.b";

方案:

方案1

eval("obj." + key);
输出结果: 1

方案2

new Function("return " + ("obj." + key))();
输出结果: 1

方案3 - 通用方案(微信小程序不支持eval)

var ev = function (data, str){
    let arr = str.split('.');
    let res = data;
    for(let i in arr){
      res = res[arr[i]];
    }
    return res;
};
ev(obj, key)

输出结果: 1
上一篇 下一篇

猜你喜欢

热点阅读