如何遍历这种数组并获取每个元素的标签或名称[重复]

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 - 包含评论 - 了解更多信息)

【讨论】:

以上是关于如何遍历这种数组并获取每个元素的标签或名称[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery和javascript获取标签名称[重复]

需要搜索目录并遍历 zip 文件并阅读每个 [重复]

vb怎么获取网页中的每个元素内容

请问C#中有没有判断数组元素重复,或如何去除重复呀?

遍历数组以返回数组的名称

angularjs怎么遍历每个对象的属性的值