Javascript строка из сравнения объектов не работает в switch - PullRequest
0 голосов
/ 23 марта 2020

Итак, я пытаюсь сравнить символ, хранящийся в объекте, с четырьмя кардинальными точками, но он не работает. В этом случае значение 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;
            }

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Мое предложение - проверить тип данных this.position.orientation, чтобы убедиться, что это строка.

Я не уверен, но вы проводите сравнение с char. Попробуйте использовать регистр "E" вместо регистра "E".

Попробуйте использовать команду ToString () в this.position.orientation перед сравнением.

Если это происходит из массива, убедитесь, что это не массив с единственной позицией, делающей this.position.orientation [0] в предложении switch.

0 голосов
/ 23 марта 2020

По сути, это не вопрос, проверьте, что это за this.position.orientation, прежде чем вводить оператор switch, и вы поймете, в чем проблема.

...