关于javascript:如何循环通过这种数组并获取每个元素的标签或名称

How to loop thru this kind of array and get the label or name of each element

本问题已经有最佳答案,请猛点这里访问。

我有这个数组:我不知道这是什么类型的数组。

1
2
3
4
5
var catz ={
cafe:{class:'orange',color:'E6674A',font:'000'},
bar:{class:'orange',color:'E6674A',font:'000'},
restaurant:{class:'green',color:'a8e52f',font:'000'}
};

我正试图提醒这个类别:例如,它应该提醒:咖啡馆,然后是酒吧,然后是餐馆。

1
2
3
for (var j = 0;j < 3;j++){
    alert (catz[j]);
}

那么我也想要颜色

它与这个数组一起工作,但我正在使用另一个数组。

1
var catz = ["cafe","bar","restaurant"];

谢谢


试试这个:

1
2
3
4
5
6
7
8
9
var catz ={
    cafe:{class:'orange',color:'E6674A',font:'000'},
    bar:{class:'orange',color:'E6674A',font:'000'},
    restaurant:{class:'green',color:'a8e52f',font:'000'}
};

for(var key in catz){
    alert(key +" :" + catz[key].color);
}

这将提醒cafe : E6674A等…

http://jsfidle.net/ashishanexpert/qvp5u/


遍历对象并检索键

1
2
3
4
5
for (category in catz) {
   if (catz.hasOwnProperty(category)) {
      console.log(category)
   }
}

注:在您的具体示例中,if声明不是真正必要的(有关更多信息,请参阅此回答-包含注释)


可以使用for-in循环迭代对象的属性。

1
2
3
4
for (var key in catz) {
    if (catz.hasOwnProperty(key))
        console.log(key, catz[key]);
}

控制台输出:

1
2
3
cafe Object {class:"orange", color:"E6674A", font:"000"}
bar Object {class:"orange", color:"E6674A", font:"000"}
restaurant Object {class:"green", color:"a8e52f", font:"000"}