我有一个稀疏数组,其内容不能保证按索引顺序插入,但需要按索引顺序迭代。要遍历稀疏数组,我知道您需要使用 for..in 语句。
但是,根据这篇文章:
不能保证 for...in 会以任何特定顺序返回索引
但是像这样的stackoverflow问题表明,虽然不能保证对象属性顺序,但数组顺序是:
JavaScript 不保证对象中的属性顺序,您需要使用数组。
我在最新版本的 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>");
}
所有人似乎都尊重索引顺序,所以我可以相信这总是如此吗?否则,我如何最好地按索引顺序获取它们?