【问题标题】:Need to calculate the number of zeros, positive and negative nos in an array using Switch Case in Javascript需要在 Javascript 中使用 Switch Case 计算数组中的零个数、正数和负数
【发布时间】:2021-12-12 23:40:23
【问题描述】:

我尝试了下面的代码,但开关盒没有像我预期的那样工作。你能告诉我哪里出错了吗?

    function counter() {
 //   const arr = prompt("Enter numbers").split(",");
 let arr = [1,2,3,-1,0];
 console.log(arr.length);
    const neg=0, pos=0, zero=0;
    for (var i = 0; i < arr.length; i++) {
        let val = arr[i];
        console.log(val);
        switch (val) {
            case (val === 0):
                zero += 1;
                console.log("zero");
                break;  
            case (val < 0):
                neg += 1;
                console.log("neg");
                break;
            case (val > 0):
                pos += 1;
                console.log("pos");
                break;
            default:
                console.log("not working");
                break;
        }
    }
    document.write("Negatives: " + neg+"<br>");
    document.write("Positives: " + pos+"<br>");
    document.write("Zeroes: " + zero+"<br>");
}

【问题讨论】:

    标签: javascript html arrays switch-statement logic


    【解决方案1】:

    您不能重新分配const。这样的事情会抛出一个错误:

    const num = 0;
    num += 1; // Uncaught TypeError: Assignment to constant variable.
    

    另一个问题:在您的 case 语句中,您使用的表达式的计算结果为 truefalse(表达式将在匹配之前进行计算),因此您必须使用 switch(true) 而不是 @ 987654327@:

    function counter() {
        // const arr = prompt("Enter numbers").split(",");
        let arr = [1,2,3,-1,0];
        let neg=0, pos=0, zero=0;
        for (var i = 0; i < arr.length; i++) {
            let val = arr[i];
            switch (true) {
                case (val === 0):
                    zero += 1;
                    console.log("zero");
                    break;  
                case (val < 0):
                    neg += 1;
                    console.log("neg");
                    break;
                case (val > 0):
                    pos += 1;
                    console.log("pos");
                    break;
                default:
                    console.log("not working");
                    break;
            }
        }
        document.write("Negatives: " + neg+"<br>");
        document.write("Positives: " + pos+"<br>");
        document.write("Zeroes: " + zero+"<br>");
    }
    
    counter()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-23
      • 2013-01-23
      相关资源
      最近更新 更多