2017-02-17 8 views
0

в моем коде я всегда делал«в» оператор показывает функции в JavaScript

for(i in vector)... 

и он всегда работал, но проблема в том, что это как-то изменилось, и теперь мои на шоу все значения, но и свойства , как «remove», который является функцией, и он разбивает весь мой код.

Я не знаю, почему это внезапно изменилось, потому что я ничего не делал, и я уже с ума схожу с этим.

Вы, ребята, знаете, что происходит с моим приложением?

Другое дело, что код вызывает эту проблему только на моем компьютере.

Если я снова клонирую свой репозиторий и попробую, пока он работает, а затем снова запустит проблему.

спасибо.

+2

'всегда worked' - на самом деле ?,', но проблема в том, что она каким-то образом changed' - не за последние 15 лет он не имеет –

+0

* в * показывает все перечисляемые свойства, в том числе на цепочку '[[Prototype]]'. Что-то там изменилось? – RobG

+0

JaromandaX, если я перехожу в другую ветку с тем же кодом или заведу свою ветку на другом компьютере, это работает, но моя ветка на моем компьютере работает некоторое время, а затем начинает получать это, и я не знаю почему. – alanfortlink

ответ

0

Оператор in всегда имел это поведение. Просто убедитесь, что свойство существует непосредственно на объекте, а не на prototype:

for (var i in vector) { 
    if (vector.hasOwnProperty(i)) { 
     // Property exists on object 
    } 
} 

Это должно решить ваши проблемы.

Том

+0

Знаете ли вы, почему одна и та же часть кода работает в другой ветке или другом компьютере? – alanfortlink

+0

Я не могу помочь вам с этим. Спецификация определяет это как правильное поведение оператора 'in'. Возможно, вы используете другой браузер, который может объяснить разницу в выходе, которую вы видите, но я чувствую, что есть вероятность, что это так. – maddockst

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