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); } |
这将提醒
http://jsfidle.net/ashishanexpert/qvp5u/
遍历对象并检索键
1 2 3 4 5 | for (category in catz) { if (catz.hasOwnProperty(category)) { console.log(category) } } |
注:在您的具体示例中,
可以使用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"} |