需求: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
网友评论