簡體   English   中英

如何遍歷特定的對象屬性

[英]How to iterate through specific object properties

我想減少代碼中IF語句的數量:

http://jsfiddle.net/b0ftLujj/

重復的屬性太多,這是一個問題。

第二部分可能與上面的代碼有關。 我想遍歷我的對象屬性:

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] + '" />';
    }
}

這是該http://jsfiddle.net/b0ftLujj/1/的小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM