【问题标题】:Iterate through associative array using sequential for loop使用顺序 for 循环遍历关联数组
【发布时间】:2013-04-04 11:04:30
【问题描述】:

我有很多数据存储在关联数组中。

array = {'key':'value'};

如何使用普通的 for 循环而不是像这里这样的循环来遍历这样的数组: http://jsfiddle.net/HzLhe/

由于以下问题,我不想使用 for-in: Mootools when using For(...in Array) problem

【问题讨论】:

  • 你为什么不喜欢for .. in循环?
  • 为什么不使用 for..in 循环 ..?
  • @Jacob 那是因为你必须使用.hasOwnProperty 方法来过滤掉原型链属性
  • @Jacob 您使用的是对象而不是数组。这些元素在 JavaScript 中是不同的。 for .. in 循环是迭代对象的最佳选择。

标签: javascript arrays for-loop


【解决方案1】:

正如其他人所指出的,这不是一个数组。这是一个 JavaScript 对象。要对其进行迭代,您将不得不使用 for...in 循环。但是要过滤掉其他属性,你将不得不使用hasOwnProperty

例子:

var obj={'key1': 'value1','key2':'value2'};

for (var index in obj) {
    if (!obj.hasOwnProperty(index)) {
        continue;
    }
    console.log(index);
    console.log(obj[index]);
}

http://jsfiddle.net/jeffshaver/HzLhe/3/

【讨论】:

    【解决方案2】:

    JavaScript 没有关联数组的概念。相反,您只需拥有一个具有可枚举属性的对象,因此请使用 for..in 循环遍历它们。如上所述,您可能还想使用hasOwnProperty 进行检查,以确保您没有对继承的属性执行操作。

    for (var prop in obj){
        if (obj.hasOwnProperty(prop)){
            console.log(obj[prop]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2016-01-31
      • 2013-07-05
      相关资源
      最近更新 更多