例如:我定义了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 = ... //知道这样是不行的,但是想找一种能达到这种效果的方法
}
回答:
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