Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何遍历特定的对象属性_Javascript_Jquery - Fatal编程技术网

Javascript 如何遍历特定的对象属性

Javascript 如何遍历特定的对象属性,javascript,jquery,Javascript,Jquery,我想减少代码中IF语句的数量: 重复的属性太多,这是一个问题 第二部分,可能与上述代码有关。 我想遍历我的对象属性: myObject={ 属性_1:myValue_1, 属性_2:myValue_2, otherProperty_1:myValue_1 }; 基于上面的一个对象,我只想遍历property\u 1、property\u 2,忽略otherProperty\u 1 我的对象最多可以有5个“property_x”属性,或者根本没有。我试图做一个if语句,类似于下面的伪代码: fo

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

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

第二部分,可能与上述代码有关。 我想遍历我的对象属性:

myObject={
属性_1:myValue_1,
属性_2:myValue_2,
otherProperty_1:myValue_1
};

基于上面的一个对象,我只想遍历
property\u 1、property\u 2
,忽略
otherProperty\u 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.
  }
}
for(myObject中的变量statName){
If(myObject有任何名为:'property_1,property_2,property_3,property_4,property_5'的属性)。indexOf(statName)!=-1;)
//然后以html显示:'
使用JavaScript进行回答是最好的,但jQuery也为我们提供了一个选项。
欢迎与我可以用来了解更多的材料的任何链接


谢谢

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

var randomNumber=Math.floor((Math.random()*100)+1);
如果(dropItem.itemType==“武器”){
dropItem[“MaterialsLot_1”]=“空”;
如果(随机数>=40)dropItem[“MaterialsLot_2”]=“空”;
如果(随机数>=60)dropItem[“MaterialsLot_3”]=“空”;
如果(随机数>=80)dropItem[“MaterialsLot_4”]=“空”;
如果(随机数>=95)dropItem[“MaterialsLot_5”]=“空”;

};
我不确定我是否完全理解,但您的伪代码实际上非常有效:-)。您可以使用obj
语句中的
for prop遍历每个对象属性(您还应该检查它是否是对象自己的属性),并使用
obj[prop]
代码获取此属性的值

for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        html += '<img src="' + obj[prop] + '" />';
    }
}
for(obj中的var prop){
if(对象拥有自己的财产(财产)){
html+='';
}
}

我知道这段代码,但问题是,我的对象有大约30个属性,我想检查它是否有那些特定的属性“property_1,property_2,property_3,property_4,property_5”然后根据这些属性运行代码,这样它将类似于您的代码,但只搜索这些属性。我希望您现在能更好地理解它:您知道这些参数的名称吗?为什么不简单地迭代一下它们。嘿,我没有足够的经验来提供解决方案,谢谢,这对我很有用。Ac实际上…现在我看了我的代码,我做了完全相同的事情。哈哈。几乎一样,你的代码占用的空间比我的少,所以它比我的好。嘿,谢谢:)这就是我要找的。关于第二个问题,请查看我下面的评论回复,我认为它应该能更好地解释它。