Вы получаете эти дополнительные свойства, потому что вы или используемая вами библиотека расширили прототип Array
. Как указывает Майк в своем ответе, вы можете пропустить их, используя hasOwnProperty
. Действительно, в CoffeeScript встроено ключевое слово own
, которое делает это за вас:
for own i of foo
obj = foo[i]
...
Но, как Майк также указывает в своем ответе, более эффективно обходить массив, увеличивая счетчик, а не перебирая ключи. Для этого вы должны использовать синтаксис for...in
CoffeeScript:
for obj in foo
...
(Если вам нужны также индексы в цикле, вы можете написать for obj, i in foo
.)