преобразовать в оператор if / else - PullRequest
0 голосов
/ 07 апреля 2011

почему-то это не работает:

if(direction != 'leftnav') direction = 'leftnav'; 
if(direction == 'leftnav') direction = 'rightie';

это всегда звучит как "правша"

Я склонен полагать, что это потому, что они перезаписывают.Можно ли это сделать с помощью оператора if else?спасибо:)

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

!== и === являются строгими проверками равенства .

Вы, вероятно, просто хотите !=, например:

if (direction != 'leftnav') {
  direction = 'leftnav';
}
else {
  direction = 'rightie';
}

Или лучшено для этих простых назначений используется троичный оператор :

direction = direction == 'leftnav' ? 'rightie' : 'leftnav';
2 голосов
/ 07 апреля 2011

Конечно, они перезаписывают, посмотрите, что вы там делаете:

if(direction !== 'leftnav') direction = 'leftnav';
if(direction == 'leftnav') direction = 'rightie';

Первый оператор устанавливает direction в значение leftnav, если это что-то еще.Таким образом, к тому времени, когда вы дойдете до второго утверждения, direction всегда будет 'leftnav'.Вы хотели сказать else if вместо if за секунду?

1 голос
/ 07 апреля 2011

Подумайте о логике, которую вы запрашиваете:

Если это не leftnav, то сделайте это leftnav.
[Следующее утверждение - после того, как оно уже было переназначено]
Если этоleftnav, сделайте это правильно.

Вы ищете

if(direction !== 'leftnav') direction = 'leftnav';
else if(direction == 'leftnav') direction = 'rightie'; // can just be "else"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...