Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在switch构造中生成大量case语句_Javascript - Fatal编程技术网

Javascript 在switch构造中生成大量case语句

Javascript 在switch构造中生成大量case语句,javascript,Javascript,我有一个教育任务,我必须编写生成1000个case语句的函数 function f(x) { // function let y; // variable switch (x) { // switch for(let z; z < 1000; z++){ // loop y = case x: alert('True'); break; retur

我有一个教育任务,我必须编写生成1000个case语句的函数

function f(x) { // function
    let y; // variable
    switch (x) { // switch
        for(let z; z < 1000; z++){ // loop
           y = case x:
               alert('True');
               break;
               return y
        }
    }
}
函数f(x){//函数 设y;//变量 开关(x){//开关 对于(设z;z<1000;z++){//循环 y=情况x: 警报(“真”); 打破 返回y } } }
我不知道如何以正确的方式循环使用案例陈述。首先,我不认为您所做的是正确的。不能向交换机添加案例。 也许我误解了,谁知道呢。但无论如何

在我看来,获得1000个只需发出警报的案例的最好方法是

function f(x) { // function
    let text = `switch(x){`;
    for(let z =0;z<1000;z++){
        text+=`case ${z}:alert("true");break;`;
    }
    text+=`}`;
    eval(text);
}
f(100);//true
f(1001); //nothing
函数f(x){//函数 让text=`开关(x){`;
例如(让z=0;z=0&&f你到底想完成什么?教育任务是什么,比如家庭作业或老师的作业(如果是这样,这是一个非常糟糕的作业)?这仅仅是为了生成1000个案例陈述?还是您有其他一些要求,这是您解决手头问题的方法?如果您描述了问题所在,我们可能能够提供替代解决方案,从您的示例中不清楚您为什么需要1000个案例陈述。您正在对每个案例进行相同的测试。也许你可以用一个更详细的例子来编辑这个问题,展示你真正想要实现的目标。如果你需要“池”,一个
switch
语句可能是错误的解决方案。只需使用
If(x>0&&x<1000)else
链即可。需要1000个case语句,如:case 1:alert(1);break;case 2:alert(2);breakIMHO甚至显示'eval()'都是一个糟糕的主意“在一个循环中,大约3秒钟就会让你发疯。@ScottMarcus我修复了他的代码。并警告了他所有的事情。Eval有它的用途,在这种特殊情况下,需要它来修复它。真的没有任何用例需要
Eval()
。有人说过
Eval()
是使代码正常工作所必需的,这是因为建议的解决方案不适用于该问题。是的,
eval()
需要以JavaScript形式执行字符串,但真正的解决方案是首先不采用这种方法,从而使用
eval()
一个没有实际意义的观点。这个问题的最佳解决方案是首先拒绝建议解决方案的前提。这里需要的是循环中的三元语句。是的,但我相信堆栈溢出是回答这些问题的地方,即使它们很愚蠢。
function f(x){
    if(x>=0&&f<=1000) alert("true");
}