var aa = "medata.d"
var bb = "ata[0].B2"
var cc = aa + bb
console.log(cc)
console.log(medata.data[0].B2)
// console.log(cc) 的结果是 medata.data[0].B2
// medata.data[0].B2的结果是A
// 怎么更改console.log(cc) 让它的结果也是A,后面要用循环改变[0],没办法直接写入公式,求助,谢谢!!
var aa = "medata.d"
var bb = "ata[0].B2"
var cc = aa + bb
console.log(cc)
console.log(medata.data[0].B2)
// console.log(cc) 的结果是 medata.data[0].B2
// medata.data[0].B2的结果是A
// 怎么更改console.log(cc) 让它的结果也是A,后面要用循环改变[0],没办法直接写入公式,求助,谢谢!!
3 个回答
var
data = {
medata: {
data: [{
B2:
"B2的值"
}]
}
};
console.log(data.medata.data[0].B2);
var
aa =
"medata.d"
var
bb =
"ata[0].B2"
var
cc = aa + bb
cc.replace(/\[([^\]]+)\]/g,
'.$1'
).split(
'.'
).forEach(key => {
data = data[key]
});
console.log(data);
第一种方法是用云函数,使用eval
第二种方法是用:
var a = {medata},
aa = "medata.d",
bb = "ata[0].B2",
cc = aa + bb,
dd = cc.replace(/\[([^\]]+)\]/g, '.$1').split('.')
dd.map((v,i)=>{
if(a[v]){
a = a[v]
}else{
a = undefined
break;
}
})
console.log(a, medata.data[0].B2)
如果是拼接字符串,然后要setData它的值的话,可以使用
this.setData({
[cc]:xxx})
这样的形式