处理多变量操作的更好方法?
Better way to handle operations with many variables?
我有大约 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];
这很麻烦,即使我使用解构赋值。管理我拥有的所有信息的更好方法是什么?
使用普通变量,您找不到更聪明的方法。我建议改用对象,因为数组是匿名的,因为您通过索引而不是名称访问内容:
let groupA = {
a: 1,
b: 2,
c: 3
}
然后您可以通过
进行迭代和相乘
for (let key in groupA) {
if (groupA.hasOwnProperty(key) {
groupA[key] *= 5;
}
}
但您仍然可以单独访问每个字段
console.log(groupA.a);
无论如何你都必须重新分配,但你可以用更简洁的方式来做:
let a = 1,
b = 2,
c = 3;
([a, b, c] = [a, b, c].map(v => v * 5));
console.log(b);
我有大约 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];
这很麻烦,即使我使用解构赋值。管理我拥有的所有信息的更好方法是什么?
使用普通变量,您找不到更聪明的方法。我建议改用对象,因为数组是匿名的,因为您通过索引而不是名称访问内容:
let groupA = {
a: 1,
b: 2,
c: 3
}
然后您可以通过
进行迭代和相乘for (let key in groupA) {
if (groupA.hasOwnProperty(key) {
groupA[key] *= 5;
}
}
但您仍然可以单独访问每个字段
console.log(groupA.a);
无论如何你都必须重新分配,但你可以用更简洁的方式来做:
let a = 1,
b = 2,
c = 3;
([a, b, c] = [a, b, c].map(v => v * 5));
console.log(b);