我有一个稀疏数组,其内容不能保证按索引顺序插入,但需要按索引顺序迭代。要迭代稀疏数组,我知道您需要使用 for..in 语句。
然而,根据本文:
不保证 for...in 将以任何特定顺序返回索引
But 像这样的计算器问题建议虽然不能保证对象属性顺序,但数组顺序是:
JavaScript 中不保证对象中的属性顺序,您需要使用数组。
I 测试了这个在最新版本的 Chrome、Firefox 和 IE 中。
<ol id="items"></ol>
var list = [];
function addItem(index) {
list[index] = { idx : index };
}
var insertOrder = [ 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15 ];
for ( var i = 0; i < 15; i++ ) {
addItem(insertOrder[i]);
}
for(var item in list) {
$("#items").append("<li>" + list[item].idx + "</li>");
}
所有这些似乎都遵循索引顺序,所以我可以相信情况总是如此吗?否则,我如何最好地按索引顺序获取它们?