请问在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

},

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

阅读 2.7k
2 个回答

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 语法。

            let data = [
                    {"id":"1","name":"张三","address":"北京"}
                ];
                let arrone = {};
                if(data){
                    for(let arr in data[0]){
                        arrone[arr] = data[0][arr]; 
                    }
                }
                console.log(arrone);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题