vue如何让动态给变量赋值

例如:我定义了3个变量分别是:data1,data2,data3
然后在一个函数中想根据参数来确定为其中的一个赋值,例如:当参数值为1,为data1赋值;参数为2,为data2赋值... 这种,因为可能会有很多种赋值方案,属于我想用下面这种if判断有点不太合适,又没有想到比较好的方法,还请有好方法的好心人指点下,谢谢啦

function Test(param) {
    if(param===1){
        this.data1 = ...
    } else if(param===2){
        this.data2 = ...
    } else{
        this.data3 = ...
    }
}

想达到类似上面的效果但是不用if...else判断的方法

补充:我可能没太说明白,我的意思是可能会有很多参数,变量也会有好多,有没有什么方法能实现类似下面这种的结果

function Test(param) {
    this.data+param = ...  //知道这样是不行的,但是想找一种能达到这种效果的方法
}
阅读 25.8k
6 个回答

可以用switch呀

switch (param) {
    case 1:  this.data1 = ... break;
    case 2:  this.data2 = ... break;
    case 3:  this.data3 = ... break;
}

不知道场景是什么,描述的并不太详细
假设param不同给不同data赋相同的值
你可以这样处理

this.data[param] = xxx

我认为你可以定义一个object,类似这样的数据结构:{param1: data1, param2: data2};
然后存值的时候就这样操作:
obj[params1] = data1;
取值的时候:
obj[param1]

你的问题应该就是想动态改变data里的参数值,这里this其实就是data这个对象,所以直接这样写就行了:

this['data' + param] = xxx
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题