来自对象比较的Javascript字符串在开关中不起作用

问题描述 投票:0回答:2

因此,我试图将存储在对象中的字符与四个基点进行比较,但是它不起作用。在这种情况下,this.position.orientation值为E,但它直接跳至默认选项。我认为这一定与尝试比较属于对象的数组有关,但我不知道该如何解决。任何帮助将不胜感激。

注意:this.position.orientation是使用之前使用array.split('');填充的,它始终只存储一个字符

switch (this.position.orientation) {
                case 'N':
                    this.position.orientation = 'E';
                    break;
                case 'S':
                    this.position.orientation = 'W';
                    break;
                case 'E':
                    this.position.orientation = 'S';
                    break;
                case 'W':
                    this.position.orientation = 'N';
                    break;
                default:
                    break;
            }
javascript arrays object switch-statement
2个回答
0
投票

这不是问题,基本上,在输入switch语句之前检查this.position.orientation是什么,您将意识到问题所在。


0
投票

我的建议是检查this.position.orientation的数据类型以确保其为字符串。

我不满意,但是您正在与char比较。尝试使用大小写“ E”而不是大小写“ E”。

比较之前,请尝试在this.position.orientation中使用ToString()命令。

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