Javascript迭代稀疏数组

Abs*_*lom 13 javascript arrays

我有一个稀疏数组(索引不连续),如下所示:

var testArray = { 0: "value1", 5: "value2", 10: "value3", 15: "value4" };
Run Code Online (Sandbox Code Playgroud)

我只想迭代每个项目,做一些事情,并能够在一定条件下休息.

我是Javascript的新手,我找不到合适的方法.这是我尝试过的:

  1. 内置"for..in".看来这不是迭代数组的正确方法

  2. 来自ECMASCRIPT5的forEach.这个迭代正确,但我无法摆脱循环.

  3. 来自Underscore.js的_.each().与#2相同的结果.

  4. 来自JQuery的$ .each().有了这个,我可以通过返回false来打破,但它不会正确迭代.对于上面的例子,它不是在0,5,10,15处迭代,而是在0,1,2,3,4,5,6迭代......这显然不是我所期望的.

所以我的问题是:是否有一种简单的方法来迭代稀疏数组,可能在Javascript循环期间中断,或者更好地使用另一种数据结构,如哈希表?如果有,任何推荐?

谢谢!

Ble*_*der 10

for...in语法有什么问题?你有一个对象,所以for...in语法完全有效使用:

var testArray = { 0: "value1", 5: "value2", 10: "value3", 15: "value4" };

for (var key in testArray) {
  var value = testArray[key];

  if (...) {
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 是为了保证订单吗? (4认同)
  • @ScottBoring:没有. (3认同)