【问题标题】: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不够花哨……

标签: javascript arrays


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-16
      • 2019-08-22
      • 1970-01-01
      • 2022-11-11
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多