javascript - 如何迭代特定对象属性

标签 javascript jquery

我想减少代码中 IF 语句的数量:

http://jsfiddle.net/b0ftLujj/

重复的属性太多,这是一个问题。

第二部分可能与上面的代码相关。 我想迭代我的对象属性:

myObject ={ property_1:myValue_1, property_2:myValue_2, 其他属性_1:myValue_1 };

基于上面的对象,我只想迭代 property_1, property_2,忽略 otherProperty_1

我的对象最多可以有 5 个“property_x”属性,或者根本没有。我试图制作一个类似于以下伪代码的 if 语句:

for(var statName in myObject){
  If(myObject has any property called : 'property_1, property_2, property_3, property_4, property_5'.indexOf(statName) != -1;)
    //Then display in html: '<img src="images/' + property_x(where x is a property 1/2/3/4 or 5) and it would display only available properties in current object. I can make it work with an 5x if else statements to check for every property, since there cannot be property_1 and property_3/4/5 if "2" is missing. I was looking for a better way to display it.
  }
}

使用 JavaScript 回答是最好的,但 jQuery 也是一个选择。
欢迎提供任何我可以用来了解更多信息的 Material 链接。

谢谢

最佳答案

不确定我是否理解您问题的第二部分,但这是您的 fiddle 的简化版本:

var randomNumber = Math.floor((Math.random() * 100) + 1);
if (dropItem.itemType === "weapon") {
  dropItem["materiaSlot_1"] = 'empty';
  if (randomNumber >= 40) dropItem["materiaSlot_2"] = 'empty';
  if (randomNumber >= 60) dropItem["materiaSlot_3"] = 'empty';
  if (randomNumber >= 80) dropItem["materiaSlot_4"] = 'empty';
  if (randomNumber >= 95) dropItem["materiaSlot_5"] = 'empty';
};

关于javascript - 如何迭代特定对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30818898/

相关文章:

javascript - 左右顶部导航栏菜单,调整大小时重叠

javascript - jQuery:更新 cookie 中的数组

jquery - 显示标签时 Flot 圆环图消失

javascript - 如何使用 Javascript 输出 HTML '<div>' 元素

javascript - 将站点导航 HTML 导入所有页面的最简单方法是什么?

javascript - 停止搜索引擎索引我的登录页面的最佳方法是什么?

javascript - Chart.js 气泡图更改数据集标签

javascript - 将鼠标悬停在某处,以便信息显示在另一处

javascript - 在另一个页面的div中加载不同页面的innerhtml

javascript - wrapInner 不会将子元素添加到 DOM 中的包装元素中