Я использую логический оператор ИЛИ (||) правильно, в JavaScript? - PullRequest
0 голосов
/ 27 февраля 2012
if ((typed_edge!='Either') || (typed_edge!='Walkable')){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
    }

если значение typed_edge имеет значение Либо, отображается предупреждение ("ДА").

Не должно ли не отображаться?

то, что я хочу, это когдаtyped_edge имеет значение «либо», либо «проходимый», предупреждения не отображаются.Но, похоже, это не так!

Ответы [ 5 ]

5 голосов
/ 27 февраля 2012

То, как у вас это выше, вам нужно:

if('Either' !== typed_edge && 'Walkable' !== typed_edge) {
 // this means - it is NOT both of them
}

То, как вы это делаете прямо сейчас, говорит:

ЕСЛИ это не так

или

Если это не проходимое

Что означает, что это «проходимое», то первое условие оценивается как «истинное»

Это означает, что предупреждение сработает.

И наоборот, если это «либо», то второе условие будет «истинным», и оно сработает.

1 голос
/ 27 февраля 2012
if (typed_edge==='Either' || typed_edge==='Walkable'){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}

Вы должны сделать условие предложением, чтобы его было легче построить.Таким образом, вы просто заменяете грамматику на нужный синтаксис.

1 голос
/ 27 февраля 2012

Попробуйте это:

if (typed_edge !== 'Either' && typed_edge !== 'Walkable'){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}

Редактировать: пропущено "нет" в вопросе

0 голосов
/ 27 февраля 2012

Возможно, попробуйте другой подход.Загрузите ваши белые / черные списки значений в массив и проверьте, найдены ли они.

if(["Either","Walkable"].indexOf(typed_edge) > -1)
{
    alert('got either or walkable here');
}
0 голосов
/ 27 февраля 2012

Условное ||, если оно используется правильно, однако вы используете not-equal-to в операторе if(), попробуйте следующее:

if ((typed_edge=='Either') || (typed_edge=='Walkable')){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}
...