收藏
回答

字符串是公式,请问怎么log结果而不是公式本身?

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 个回答

  • sheng
    sheng
    2019-12-05
    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);


    2019-12-05
    赞同 2
    回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-05

    第一种方法是用云函数,使用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)


    2019-12-05
    赞同
    回复
  • 121
    121
    2019-12-05

    如果是拼接字符串,然后要setData它的值的话,可以使用

    this.setData({

    [cc]:xxx})

    这样的形式

    2019-12-05
    赞同
    回复 1
    • 杨柳
      杨柳
      2019-12-05
      谢谢,您没理解我的问题,目的是要拼接的字符串运行的结果,不是字符串本身。
      2019-12-05
      回复
登录 后发表内容
问题标签