2015-06-03 1 views
-1

Это копипаст из Firebug Watch окна:Javascript если иметь и для двух сравнений возвращает истину, даже если иное сравнение ложно

mMapDevices [я] .IsHighlighted истинные
mMapDevices [я]. Device.NodeTypeCode "M"
mMapDevices [я] .Device.NodeTypeCode! == "M" ложные
mMapDevices [я] .NodeTypeCode! == "M" & & mMapDevices [я] .а Выделенные истинные
истинно & & ложные ложные
TypeOf (mMapDevices [я] .Device.NodeTypeCode) "строка"
TypeOf ("М") "строка"

При запуске сценария выполнение выполняется внутри, если:

if (mMapDevices[i].IsHighlighted && mMapDevices[i].NodeTypeCode !== "M") { 

Что здесь происходит?

+3

не должно быть 'mMapDevices [i] .Device.NodeTypeCode'? То, что у вас есть, вероятно, «неопределено», и объяснит поведение. –

+0

Ты прав Джеймс. Я не схожу с ума, просто слепой :) Спасибо :) –

ответ

0

Эта линия ваша проблема:

mMapDevices[i].NodeTypeCode !== "M" && mMapDevices[i].IsHighlighted

Должно быть:

mMapDevices[i].Device.NodeTypeCode !== "M" && mMapDevices[i].IsHighlighted

0

Как видно, Джеймс ответил на вопрос.

не должно быть mMapDevices [i] .Device.NodeTypeCode? То, что у вас есть, вероятно, не определено и объясняет поведение

Смежные вопросы