我应该如何循环通过和“;关联对象“;在javascript中
How should I loop through and "associative object" in javascript?
我有一个对象this.themeData
,类似于这样(显示控制台输出)
Object
Banner: Object
property: "null"
raw: "uploads/1/somefile.png"
selector: "null"
value: "../../uploads/1/somefile.png"
__proto__: Object
H1_FontSize: Object
H2_FontColor: Object
H2_FontSize: Object
我这样循环:
for (attrName in this.themeData) {
attrData = this.themeData[attrName];
if (attrData.selector && attrData.value) {
$(".SomeSelector").css(attrData.property, attrData.value);
}
}
这是有效的,但我在最近的一个SO问题中看到,我不应该使用for in
。但是,如果索引不是数值for(var i = 0; i<arr.length; i++)
,而this.themeData[i]
不存在,我该如何循环?
可以用于。。在对象上的循环中,您只需要使用hasOwnProperty()检查来过滤它们
for (attrName in this.themeData) {
if (this.themeData.hasOwnProperty(attrName)) {
attrData = this.themeData[attrName];
if (attrData.selector && attrData.value) {
$(".SomeSelector").css(attrData.property, attrData.value);
}
}
}
在我看来,使用for...in
方法是可以的,只需确保检查您要查找的属性不是来自原型链的某个位置。
var foo = Object();
for(item in foo) {
if(foo.hasOwnProperty(item) {
alert(item); // The key
alert(foo[item]); // The value.
}
}
如果不选中hasOwnProperty
,则最终会得到从Object
继承的属性。
相关文章:
- JavaScript JSON关联对象键和值都作为日期时间戳
- 我应该如何循环通过和“;关联对象“;在javascript中
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 创建具有关联 dom 元素的 javascript 对象的首选方法是什么
- Javascript:使用value属性对关联数组进行排序,而不转换为对象数组
- javascript字符串到关联对象
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- Javascript:将对象列表转换为关联数组
- Javascript:返回与对象相关的信息的关联数组
- 删除对象/关联数组
- 将 Firebase 对象与当前范围解除关联
- 如何使用 KnockoutJS 创建对象的关联数组
- AngularJS:如何在指令范围的对象发生变化时更新与控制器作用域相关联的控制器作用域
- 对象/关联数组拼接函数
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- 按字母顺序排列 AngularJS 中对象保留键/值关联的选项
- 转换Javascript关联对象并用PHP输出
- 将元素推入新的关联对象数组
- 如何在Sequelize (Node js)中关联对象
- 如何在JavaScript中排序关联对象数组