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 = ...  //知道这样是不行的,但是想找一种能达到这种效果的方法
}

回答:

能尽量少写if elseswitch就尽量少写。推荐看看@守候 这篇文章:【浅析】特定场景下取代if-else和switch的方案,另外推荐书籍JavaScript设计模式与开发实践

var obj = {
    a1: '',
    a2: '',
    a3: '',
}
var param = 1; // 或者2,3
obj['a' + param] = 0;

回答:

可以用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

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注