[英]How to iterate through specific object properties
我想減少代碼中IF語句的數量:
重復的屬性太多,這是一個問題。
第二部分可能與上面的代碼有關。 我想遍歷我的對象屬性:
myObject ={ property_1: myValue_1, property_2: myValue_2, otherProperty_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也可以選擇。
歡迎與我聯系以獲取更多信息的材料的任何鏈接。
謝謝
不確定我是否理解您問題的第二部分,但這是您的提琴的簡化版本:
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'; };
我不確定我是否完全理解,但是您的偽代碼實際上非常有效:-)。 您可以for prop in obj
語句中使用for prop in obj
遍歷每個對象的屬性(還應檢查它是否是對象自己的property),並使用obj[prop]
代碼獲取此屬性的值。
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
html += '<img src="' + obj[prop] + '" />';
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.