我如何循环浏览这些项目?
var userCache = {};
userCache['john'] = {ID: 234, name: 'john', ... };
userCache['mary'] = {ID: 567, name: 'mary', ... };
userCache['douglas'] = {ID: 42, name: 'douglas', ... };
长度属性不起作用?
userCache.length
答案 0 :(得分:6)
您可以按如下方式循环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()
方法来确定对象是否具有指定属性作为直接属性,而不是从对象的原型链继承,这一点非常重要。
答案 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)