我应该如何循环和;“关联对象”;用javascript?

我应该如何循环和;“关联对象”;用javascript?,javascript,for-loop,Javascript,For Loop,我有一个对象this.themeData类似的东西(显示控制台输出) 我这样循环: for (attrName in this.themeData) { attrData = this.themeData[attrName]; if (attrData.selector && attrData.value) { $(".SomeSelector").css(attrData.property, attrData.va

我有一个对象
this.themeData
类似的东西(显示控制台输出)

我这样循环:

    for (attrName in this.themeData) {
        attrData = this.themeData[attrName];
        if (attrData.selector && attrData.value) {
            $(".SomeSelector").css(attrData.property, attrData.value);
        }
    }

这是可行的,但我在最近的一篇文章中看到,我不应该在中使用
。但是,如果索引不是for(var I=0;Ifor)的数值,如何循环呢?。在对象的循环中,只需使用hasOwnProperty()检查对它们进行筛选


在对象上的循环中,可以使用..,只需使用hasOwnProperty()检查对其进行过滤即可


在我看来,使用
for…in
方法是可以的,只需确保检查您要查找的属性不是来自原型链的某个位置

var foo = Object();
for(item in foo) {
  if(foo.hasOwnProperty(item) {
      alert(item); // The key
      alert(foo[item]); // The value.
  }
}

如果您不检查
hasOwnProperty
,您将得到从
Object

继承的属性,使用
for…in
方法在我看来很好,只要确保检查您要查找的属性不是来自原型链的某个位置

var foo = Object();
for(item in foo) {
  if(foo.hasOwnProperty(item) {
      alert(item); // The key
      alert(foo[item]); // The value.
  }
}

如果不勾选
hasOwnProperty
,您将得到继承自
Object

的属性。似乎您没有阅读另一个问题中的全部答案……它详细描述了如何在对象上迭代以及什么是gotchas。这些答案中提到的所有内容都在这里(关于
hasOwnProperty
)的用法在这里也有更详细的解释。你似乎没有阅读另一个问题的完整答案……它详细地描述了如何迭代对象以及什么是gotchas。这些答案中提到的一切(使用
hasOwnProperty
)也有更详细的解释。
var foo = Object();
for(item in foo) {
  if(foo.hasOwnProperty(item) {
      alert(item); // The key
      alert(foo[item]); // The value.
  }
}