0

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 个回答
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 语法。

0
            let data = [
                    {"id":"1","name":"张三","address":"北京"}
                ];
                let arrone = {};
                if(data){
                    for(let arr in data[0]){
                        arrone[arr] = data[0][arr]; 
                    }
                }
                console.log(arrone);

撰写答案

推广链接