首页 > 解决方案 > 处理具有许多变量的操作的更好方法?

问题描述

我有大约 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];

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

标签: javascriptpass-by-referencepass-by-value

解决方案


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

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

然后你可以通过迭代和乘法

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

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

console.log(groupA.a);

推荐阅读