如何遍历这种数组并获取每个元素的标签或名称[重复]
Posted
技术标签:
【中文标题】如何遍历这种数组并获取每个元素的标签或名称[重复]【英文标题】:How to loop thru this kind of array and get the label or name of each element [duplicate] 【发布时间】:2014-02-20 00:11:32 【问题描述】:我有这个数组:我不知道这是什么数组。
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 j = 0;j < 3;j++)
alert (catz[j]);
那我也想要颜色
它适用于这个数组,但我正在使用另一个数组。
var catz = ["cafe", "bar", "restaurant"];
谢谢
【问题讨论】:
它被称为一个对象。实际上,您拥有的是一个充满对象的对象。 如果您阅读基本的 javascript 教程,就会了解用于对象的for-in
语句。
...和 IMO,不要使用 .hasOwnProperty()
,因为下面的答案显示。仅在您知道需要时才使用它。
我不明白为什么人们对hasOwnProperty()
如此着迷,他们试图让它花哨,即使这不是必需的。
好像JS不够花哨……
【参考方案1】:
试试这个:
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://jsfiddle.net/ashishanexpert/qVp5u/
【讨论】:
谢谢你,Ashish,这很好用!!! 不客气...干杯!【参考方案2】:您可以使用 for in 循环遍历对象的属性。
for (var key in catz)
if (catz.hasOwnProperty(key))
console.log(key, catz[key]);
控制台输出:
cafe Object class: "orange", color: "E6674A", font: "000"
bar Object class: "orange", color: "E6674A", font: "000"
restaurant Object class: "green", color: "a8e52f", font: "000"
【讨论】:
【参考方案3】:遍历对象并检索键
for (category in catz)
if (catz.hasOwnProperty(category))
console.log(category)
注意:在您的具体示例中,if
语句可能不是真正必要的(请参阅this answer - 包含评论 - 了解更多信息)
【讨论】:
以上是关于如何遍历这种数组并获取每个元素的标签或名称[重复]的主要内容,如果未能解决你的问题,请参考以下文章