处理许多变量的更好方法?

时间:2018-07-20 22:16:39

标签: javascript pass-by-reference pass-by-value

我大约有30个值存储为变量:

var a = 1,
    b = 2,
    c = 3,
    ...
    z = 26, 
    aa = 27,
    ab = 28;
我要缩放的

。我这样做是使用数组:

array = [a, b, c];
var scale = 5;

for (var i = 0; i < array.length; i++){
    array[i] = array[i] * scale; // Some simple arithmetic
}

要获取新的缩放值,我需要重新分配变量。

var a = array[0],
    b = array[1],
    c = array[2],
    ...
    z = array[26], 
    aa = array[27],
    ab = array[28];

即使我使用解构分配,这也很麻烦。有什么更好的方法来管理我拥有的所有信息?

2 个答案:

答案 0 :(得分:2)

使用普通变量,您将找不到更聪明的方法。我建议使用对象而不是数组,因为数组是匿名的,因为您通过索引而不是名称访问内容:

let groupA = { 
     a: 1,
     b: 2,
     c: 3
}

然后您可以通过进行迭代和乘法

for (let key in groupA) {
    if (groupA.hasOwnProperty(key) {
         groupA[key] *= 5;
    }
}   

但是您仍然可以单独访问每个字段

console.log(groupA.a);

答案 1 :(得分:1)

无论如何,您都必须重新分配,但是您可以采用更简洁的方式进行分配:

let a = 1,
    b = 2,
    c = 3;

([a, b, c] = [a, b, c].map(v => v * 5));

console.log(b);