【发布时间】:2013-03-06 20:44:29
【问题描述】:
我刚刚意识到我的整个网络应用程序出现了故障,它归结为一个正在重新排序我的对象/数组的 for 循环。
我正在通过 AJAX 检索关联数组(对象)。我可以在返回时检查它的结构,它是正确的。例如:
48 => Value1
50 => Value2
49 => Value3
51 => Value4
但是,当我遍历它时,for 循环会重新排序对象。这是因为关联键是数字的。它们代表数据库中的数字 ID。我不知道 javascript 会扼杀它们并尝试将它们按数字顺序变成基本的数组键。因此,它吐出为:
48 => Value1
49 => Value3
50 => Value2
51 => Value4
如何按构建顺序循环遍历对象?我必须用字符串作为键来构建对象吗?就像“ID22”替换 22。或者有什么方法可以强制 javascript 以特定顺序循环?
谢谢! 马特
【问题讨论】:
-
我通常使用 ["_" + i] 以防止任何混淆。另外,在某些语言(php??)中,添加索引 49 然后 51 将自动提供索引 50,我对此不太满意......此外,正如 SOverflow 中多次评论的那样,关联数组从技术上讲是不合适的在 JavaScript 中。如果我没记错的话,应该使用对象和属性。
-
谢谢,塞巴斯。这些实际上是对象。我只知道对象是 javascript 对关联数组(类似 php 的语言)的回答,所以我用括号中的“对象”来称呼它。 :-)
标签: javascript arrays loops key sorting