这只是感觉效率低下和丑陋:
if(foo("val1")) {
let val1 = foo("val1")
}
if(foo("val2")) {
let val2 = foo("val2")
}
/* more IFs */
if(foo("val13")) {
let val13 = foo("val13")
}
什么是避免所有这些ifs的好方法?
编辑:这些字符串实际上并没有被称为Val1 ... val13(我用它作为例子,可能令人困惑,抱歉)。
答案 0 :(得分:3)
在这种情况下,我可能会使用一个数组和一个循环:
let vals = [];
for (let i = 1; i <= 13; ++i) {
let name = "val" + i;
if (foo(name)) {
vals[i - 1] = foo(name);
}
}
请注意,如果您分配给以后的索引而未分配给较早的索引,则最终会得到稀疏数组。 E.g:
let a = [];
a[2] = "two";
... a
没有0或1 的条目。 (但访问它们会为您提供值undefined
。)