Javascript 如何使用开关站

Javascript 如何使用开关站,javascript,arrays,switch-statement,Javascript,Arrays,Switch Statement,我是JS新手,我读到了switch语句。我不知道如何使用它 我有一个练习要完成。 得到了一个数字为1-10的数组,结果需要包含“1”、“2”、“3”等单词。。 这就是我目前得到的: function sayNum(){ let nameNumber = [1,2,3,4,5,6,7,8,9,10] let text = ''; for(let i=0;i<nameNumber.length;i++){ switch(numbers) { ca

我是JS新手,我读到了switch语句。我不知道如何使用它 我有一个练习要完成。 得到了一个数字为1-10的数组,结果需要包含“1”、“2”、“3”等单词。。 这就是我目前得到的:

function sayNum(){
    let nameNumber = [1,2,3,4,5,6,7,8,9,10]
    let text = '';
    for(let i=0;i<nameNumber.length;i++){
    switch(numbers) {
        case "1":
            text = "one";
            break;
        case "2":
            text = "two";
            break;
        case "3":
            text = "three";
            break;
        case "4":
            text='four';
            break;
        case "5":
            text = "five";
            break;
        case "6":
            text = "six";
            break;
        case "7":
            text = "seven";
            break;
        case "8":
            text = "eight";
            break;
        case "9":
            text = "nine";
            break;
        case "10":
            text = "ten";
    }
    }
    return text;
}
sayNum()
函数sayNum(){
设nameNumber=[1,2,3,4,5,6,7,8,9,10]
让text='';

对于(设i=0;i你可以这样做,例如:

function sayNum(){
  let numbers = [1,2,3,4,5,6,7,8,9,10];
  let result = [];

  for(let i=0;i<numbers.length;i++) {
    switch(numbers[i]) {
        case 1:
            text = "one";
            break;
        case 2:
            text = "two";
            break;
        case 3:
            text = "three";
            break;
        case 4:
            text = "four";
            break;
        case 5:
            text = "five";
            break;
        case 6:
            text = "six";
            break;
        case 7:
            text = "seven";
            break;
        case 8:
            text = "eight";
            break;
        case 9:
            text = "nine";
            break;
        case 10:
            text = "ten";
            break;
    }

    result.push(text);
  }

  return result;
}

let namedNumbers = sayNum();
console.info(namedNumbers);
函数sayNum(){
设数=[1,2,3,4,5,6,7,8,9,10];
让结果=[];

对于(让i=0;i在switch语句中,将一个“表达式”传递到switch语句中。表达式本身可以是字符串、数字、浮点、布尔等。现在,将表达式与每个case子句进行比较。这是一个'strict'比较。这就是代码无法工作的原因

首先,您传递了一个未声明的变量'numbers'作为开关表达式。相反,您应该传递
nameNumber[i]
数组的
ith
元素,如下所示:
switch(nameNumber[i]){}

其次,在每一个case子句中,都将值与“1”、“2”之类的字符串进行比较。但是开关表达式是使用严格相等的
==
运算符进行比较的,因此,当nameNumber数组包含数字而不是字符串时,“case”子句也应该包含数字而不是字符串。这意味着
case 1:
而不是
case“1”:

您可以在此处阅读有关开关盒的更多信息:

我已经用上面提到的更改修复了下面的代码。请运行下面的代码片段看看它是如何工作的。祝你好运

函数sayNum(){
设nameNumber=[1,2,3,4,5,6,7,8,9,10]
让text='';

对于(让i=0;i而不是使用switch,使用if语句。因为在switch中,break语句可用于跳出循环

let text='';
函数sayNum(){
让nameNumber=[1,2,3,4,5,6,7,8,9,10];
for(设i=0;i控制台。日志(文本)< /代码>而不是使用<代码>开关<代码>,考虑一个数组,该数组具有值>代码> [一个','两个',','十' ] < /代码>,并用数字(1)索引它.…一系列问题:1.
数字
未定义并导致脚本失败2.
文本
在for循环内被覆盖,因此除了最后3个数字外,所有数字的开关块结果都被丢弃。程序不生成任何输出。修复:…这仍然是转换arr的一种极其冗长和低效的方法是的,但我明白了,这是为了一个非现实生活的练习:)…对于一个正在研究清楚事情的人来说:)嘿:)你的解释很好。非常感谢!!