请问在vue中怎么把点后面的内容整成为一个变量,看下面详情

data:[

{"id":"1","name":"张三","address":"北京"}

]

let arr = ['id','name','address']
if(this.data){

for(let i=0;i<arr.length;i++){
    this.getData(arr[i],this.data[0])
}

}

getData(parm,data){

// this.parm = data.parm

},

就是我想通过变量的方式动态设置它的值,但是我这样写是不行的,我该怎么写?

阅读 518
评论 更新于 2019-04-07
    2 个回答
    madRain
    • 1.6k

    javascript 表示对象键名的方式有两种: .key 或者 ['key']。
    在已知键名的时候可以使用 .key,键名通过变量修改的时候则采用 [variable]。
    因此所谓动态赋值的代码可以写作:

    for(let str in data[0]){
        this[str] = data[str]; 
    }

    当然,这样的写法会吧 data[0]的所有属性都赋给 this,如果只修改 ['id','name','address'] 这三个属性的话,建议采用原来的数组遍历方式,只在循环体内采用我提供的方案即可。
    另外,也可以使用 Object.assign 函数把 data[0] 的所有属性赋给 this.
    这里的知识点和 Vue 没有关系,都是 javascript 语法。

    评论 赞赏 2019-04-07
                  let data = [
                          {"id":"1","name":"张三","address":"北京"}
                      ];
                      let arrone = {};
                      if(data){
                          for(let arr in data[0]){
                              arrone[arr] = data[0][arr]; 
                          }
                      }
                      console.log(arrone);
      评论 赞赏 2019-04-08
        撰写回答

        登录后参与交流、获取后续更新提醒