我正在寻找一种在 js/ts 中创建包含环境名称列表的数组的方法。我想循环该数组并使用数组值作为闭包主体中的变量名称。
我想做一些类似的事情(我知道这行不通):
const envs = [ dev, test, uat, stage, prod ]
for (i = 1; i < envs.length; i++) {
const envs[i] = `prefix${envs[i]}`;
}
我已经看到你可以在哪里使用 eval,例如:
let k = 'value';
let i = 0;
for (i = 1; i < 5; i++) {
eval('var ' + k + i + '= ' + i + ';');
}
哪个会输出:
console.log("value1=" + value1); // value1=1
console.log("value2=" + value2); // value2=2
console.log("value3=" + value3); // value3=3
console.log("value4=" + value4); // value4=4
有没有另一种方法可以在不使用 eval 的情况下做到这一点?我知道人们会问,所以我不想使用 eval 的原因是我们使用代码扫描器来标记 eval 的使用,并且我们必须不断解释误报。
您可以简单地使用一个对象来存储变量。比如:
const envs = ['dev', 'test', 'uat', 'stage', 'prod'];
const prefixes = {};
for (let i = 0; i < envs.length; i++) {
prefixes[envs[i]] = `prefix${envs[i]}`;
}
console.log(prefixes);
// And simply do
console.log(prefixes.dev);