Javascript 使用循环将案例动态添加到交换机

Javascript 使用循环将案例动态添加到交换机,javascript,reactjs,Javascript,Reactjs,我有一个数组,其中将填充未知数量的元素 myArray = ["a", "b", "c",...] 我想创建一个switch语句,以便它包含myArray中包含的所有案例 我想要的结果是: switch (true) { case myVariable === 'a': // DO something break case myVariable === 'b': // DO something

我有一个数组,其中将填充未知数量的元素

myArray = ["a", "b", "c",...]
我想创建一个switch语句,以便它包含
myArray
中包含的所有案例

我想要的结果是:

switch (true) {
    case myVariable === 'a':
    // DO something
    break
    case myVariable === 'b':
    // DO something
    break
    ... KEEP REPETING FOR EACH ELEMENT IN myArray
}
显然,我不能硬编码所有的案例,因为我不知道有多少案例以及如何调用它们

我的想法是在交换机内部创建一个循环,如下所示:

switch (true) {
    myArray.map(myElement => {
    case myVariable === myElement:
    // DO something
    break
    })
}
我认为这是不可能的,因为switch需要的是
案例
而不是
.map

我检查了这个答案,但它没有解决循环部分

您不能这样做

您可能正在寻找的只是迭代数组中的每个元素,检查条件,并相应地采取行动

myArray.map(myElement => {
    if (condition)
    {
        //Do something
    }
})

这是我能想到的最好的办法。

也许你根本不需要开关?为什么不直接使用地图?这是一种“使用开关或死亡”的情况吗?我想这是一个
for
循环就足够了。每种情况下的操作是什么?若变量为“a”,则您希望执行什么操作,若变量为“b”,则您希望在案例中执行什么操作。操作是如何定义的?可以使用
eval()
来定义。但是,我不建议使用它,因为它有安全性和性能方面的缺点。正如其他人提到的,一个简单的循环也可以做到这一点。我们需要知道函数(以及它们各自的参数,如果有的话)是如何与myArray的元素相关联的。例如,您是否从三个并行数组(案例、函数、参数)开始?或者我的数组包含的对象包含给定情况下的所有三条信息?或者函数实际上是名称与大小写字符串完全匹配的“无参数”方法?。。。