Как перебрать элементы в объекте js? - PullRequest
1 голос
/ 12 мая 2010

как мне пройти через эти пункты?

var userCache = {};
userCache['john']     = {ID: 234, name: 'john', ... };
userCache['mary']     = {ID: 567, name: 'mary', ... };
userCache['douglas']  = {ID: 42,  name: 'douglas', ... };

свойство length не работает?

userCache.length

Ответы [ 4 ]

6 голосов
/ 12 мая 2010

Вы можете зациклить свойства (john, mary и douglas) вашего userCache объекта следующим образом:

for (var prop in userCache) {
    if (userCache.hasOwnProperty(prop)) {
        // You will get each key of the object in "prop".
        // Therefore to access your items you should be using:
        //     userCache[prop].name;
        //     userCache[prop].ID;
        //     ...
    }
}

Важно использовать метод hasOwnProperty(), чтобы определить, имеет ли объект указанное свойство как прямое свойство и не унаследован от цепочки прототипов объекта.

0 голосов
/ 12 мая 2010

свойство length отсутствует, потому что вы не используете индексированный массив.

см. Здесь для перебора свойств.

Разница в объектах JSON с использованием Javascript / JQuery

0 голосов
/ 12 мая 2010

Для этого вы должны использовать цикл for .. in

for (var prop in userCache) {
    if (userCache.hasOwnProperty(prop)) {
        alert("userCache has property " + prop + " with value " + userCache[prop]);
    }
}

. .HasOwnProperty необходим, чтобы избежать членов, унаследованных через цепочку прототипов.

0 голосов
/ 12 мая 2010
for(var i in userCache){
   alert(i+'='+userCache[i]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...