为什么我的Switch陈述式案例无法在完全匹配的字符串上触发?

问题描述 投票:1回答:1

Switch语句出卖了我...以下switch语句与任何情况都不匹配,而是每次都打印default情况。

我已经尝试删除默认情况,并向所涉及的变量添加了类型检查,但它仍然根本不匹配。我什至手动重新键入了大小写字符串,以确保我没有复制粘贴任何错误的字符。删除()字符也无济于事。

字符串每次匹配1:1,并且类型始终为string。这些也是最后剩下的情况。之前还有大约10例,但都很好,并且执行了所需的操作。

如果有人知道这里出了什么问题,那就太好了,谢谢!! >>

const subUniName = sub.data().university;  // Is always one of the cases, f.e.: 'Hochschule Fresenius (Wiesbaden)'

let correctUniName;

console.log('type of raw data: ' + typeof sub.data().university) // Logs string
console.log('type of raw data appended to const (same thing): ' + typeof subUniName) // Logs string
console.log('subUniName: ' + subUniName)

// Update University Name
switch (subUniName) {
    case "Hochschule Fresenius (Wiesbaden)":
        correctUniName = "Hochschule Fresenius University of Applied Sciences";
        break;
    case 'Hochschule RheinMain (Wiesbaden und Rüsselsheim)':
        correctUniName = "Hochschule RheinMain University of Applied Sciences Wiesbaden Rüsselsheim";
        break;
    case 'EBS Universität für Wirtschaft und Recht (Wiesbaden, Oestrich-Winkel)':
        correctUniName = "EBS Universität für Wirtschaft und Recht";
        break;
    case 'Hochschule Ruhr West (Mülheim, Bottrop)':
        correctUniName = "Hochschule Ruhr West University of Applied Sciences";
        break;
    case "Duale Hochschule Baden-Württemberg (Stuttgart)":
        correctUniName = "DHBW - Duale Hochschule Baden-Württemberg";
        break;
    case 'Hochschule Augsburg (HSA)':
        correctUniName = "Hochschule für angewandte Wissenschaften Augsburg - University of Applied Sciences";
        break;
    case 'Hochschule Karlsruhe - Technik und Wirtschaft':
        correctUniName = "Hochschule Karlsruhe - Technik und Wirtschaft - University of Applied Sciences";
        break;
    case 'Hochschule Westküste (Heide)':
        correctUniName = "";
        break;
    default:
        console.log(sub.data().university + ' not matched')
        break;
}

这里是一个实时示例

,具有与sub.data().university返回的相同字符:

https://stackblitz.com/edit/js-3zcwdz

这是终端(运行节点)中输出的屏幕截图:

The Terminal Output

编辑:

刚刚尝试添加行console.log(`Does ${subUniName} match Hochschule Fresenius (Wiesbaden)? ${subUniName === "Hochschule Fresenius (Wiesbaden)"}`)[subUniNameHochschule Fresenius (Wiesbaden)时应返回true。

但是打印此内容:

Hochschule Fresenius(威斯巴登)匹配Hochschule Fresenius(威斯巴登)?假

我现在很困惑。 subUniNamestring的类型,字符完全相同,没有空格或其他内容-我缺少什么?

EDIT2:

这里是从存储在数组中的sub.data().university中获得的数据的问题的实时复制。

https://stackblitz.com/edit/js-3zcwdz

Switch语句已经出卖了我...下面的switch语句与任何情况都不匹配,而是每次都打印默认情况。我尝试删除默认情况并添加了...

javascript node.js switch-statement
1个回答
1
投票

对于“变通方法”,您可以尝试使用此映射功能:

© www.soinside.com 2019 - 2024. All rights reserved.