Дополнительные значения при синтаксическом анализе, а затем в цикле через строку JSON - PullRequest
0 голосов
/ 07 декабря 2010

Итак, у меня есть строка JSON, и я намереваюсь ее проанализировать и предупредить содержимое, вот так.

var json_string = '[1,2,3,4,5]';
var parsed_string = JSON.parse(json_string);
for(x in parsed_string) alert(x)

Однако я не только получаю пять элементов, но и целую кучу лишних слов, о которых я не просил ... $ constructor, $ family, append, associate и т. Д.

Можно ли как-нибудь перебрать этот массив, не нажимая эти дополнительные значения?

Редактировать : Для тех, кто интересуется - позже я понял, что parsed_string.length возвращает правильную длину массива для меня, чтобы повторить.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

Вы должны пройти через объект JavaScript следующим образом:

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        alert(obj[key]);
    }
}

.hasOWnProperty() гарантирует, что свойство, указанное key, не наследуется. Однако вы имеете дело с массивом здесь:

for (var i = 0; i < arr.length; i++) {
    alert(arr[i]);
}
2 голосов
/ 07 декабря 2010

for in перебирает все перечисляемые свойства объекта;который в случае массива в Javascript - это все элементы и все методы / атрибуты, которые вы добавили в экземпляр массива или в любой объект в цепочке прототипов.следует использовать for ;;; для циклического перебора массивов.

var json_string = '[1,2,3,4,5]';
var parsed_string = JSON.parse(json_string);
for(var i=0;i<parsed_string.length;i++) alert(parsed_string[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...