javascript 我需要使用switch语句从单词集中返回一个单词

csga3l58  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(146)

在编辑器中完成getLetter(s)函数,它有一个参数:字符串,由小写英语字母(即a到z)组成。它必须返回A、B、C或D,具体取决于以下条件:
如果string中的第一个字符在集合中,则返回A。如果string中的第一个字符在集合中,则返回B。如果string中的第一个字符在集合中,则返回C。如果string中的第一个字符在集合中,则返回D。提示:可以使用语法s[i]或s.charAt(i)在中的某个索引处获取字母。

function getLetter(s) {
    let letter;
    //letter=s.charAt(0)
    const set1= new Set(['a','e','i','o','u']);
    const set2=new Set(['b','c','d','f','g']);
    const set3=new Set(['h','j','k','l','m']);
    const set4=new Set(['n','p','q','r','s','t','v','w','x','y','z']);
    // Write your code here
    switch(s.charAt(0)){
        
        case 1:
        if(set1.has(s.charAt(0)))
        letter=A;
        break;
        
        case 2:
        if(set2.has(s.charAt(0)))
        letter=B;
        break;
        
        case 3:
        if(set3.has(s.charAt(0)))
        letter=C;
        break;
        
        case 4:
        if(set4.has(s.charAt(0)))
        letter=D;
        break;
    }
    return letter;
}

想知道这段代码中有什么错误,我在结果中得到了未定义。

0sgqnhkj

0sgqnhkj1#

您可以使用布尔值检查集合。

function getLetter(s) {
    let letter;
    const set1 = new Set(['a', 'e', 'i', 'o', 'u']);
    const set2 = new Set(['b', 'c', 'd', 'f', 'g']);
    const set3 = new Set(['h', 'j', 'k', 'l', 'm']);
    const set4 = new Set(['n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z']);
    // Write your code here
    switch (true) {
        case set1.has(s[0]):
            letter = 'A';
            break;

        case set2.has(s[0]):
            letter = 'B';
            break;

        case set3.has(s[0]):
            letter = 'C';
            break;

        case set4.has(s[0]):
            letter = 'D';
            break;

    }
    return letter;
}

console.log(getLetter('e'));
console.log(getLetter('b'));
console.log(getLetter('k'));
console.log(getLetter('s'));
p5cysglq

p5cysglq2#

你想要一个函数来检查字符串。但是在所有的开关情况下,你都在尝试检查什么?switch(s.charAt(0))这将被求值,s。charAt将永远不会是一个没有转换的数字。所以建议总是设置一个默认的大小写(这将永远有效)和大小写

switch (true) {
case set1.has(s.charAt(0)):
  return 'A'

case set2.has(s.charAt(0)):
  return 'B'

case set3.has(s.charAt(0)):
  return 'C'

case set4.has(s.charAt(0)):
  return 'D'
default:
  return 0

}

相关问题