Учитывая следующую строку:
var str = "one,two,three";
Если я разделяю строку на запятые, я обычно получаю массив, как и ожидалось:
var arr = str.split(/\s*,\s*/);
Проблема в том, что в Google Chrome (для Mac) он добавляет дополнительные свойства в массив.
Вывод из отладчика Chrome:
arr: Array
0: one
1: two
2: three
constructor: function Array()
index: undefined
input: undefined
length: 3
Так что, если я перебираю массив с циклом for/in
, он перебирает новые свойства. В частности, свойства input
и index
. Использование hasOwnProperty
, похоже, не помогает.
Исправить можно было бы сделать цикл for
, основанный на длине массива. Тем не менее, мне интересно, кто-нибудь знает, почему Chrome ведет себя так. Firefox и Safari не имеют этой проблемы.