如何循环js对象中的项目?

时间:2010-05-12 16:01:58

标签: javascript json loops

我如何循环浏览这些项目?

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

长度属性不起作用?

userCache.length

4 个答案:

答案 0 :(得分:6)

您可以按如下方式循环john对象的属性(marydouglasuserCache):

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()方法来确定对象是否具有指定属性作为直接属性,而不是从对象的原型链继承,这一点非常重要。

答案 1 :(得分:0)

for(var i in userCache){
   alert(i+'='+userCache[i]);
}

答案 2 :(得分:0)

为此,您将使用for .. in循环

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

需要`.hasOwnProperty来避免通过原型链继承的成员。

答案 3 :(得分:0)

没有length属性,因为您没有使用索引数组。

请看这里迭代属性。

Difference in JSON objects using Javascript/JQuery