我有一个对象数组,需要根据某些配置数据按一定顺序放置。我在以正确的顺序遍历数组时遇到问题。我认为如果我创建了数组,然后使用 for 循环单步执行,我将能够正确执行代码。它工作得很好,除了在一个用例中,我将第四个项目添加到数组中,然后返回到第三个项目。
links[0] = foo
links[1] = bar
links[2] = foobar
links[3] = a_herring
links[4] = a_shrubery
order = [] //loaded from JSON, works has the numbers 1 2 3 or 4 as values
//in this case:
order[0] = 1
order[1] = 2
order[2] = 4
order[3] = false
order[4] = 3
for(x in order){
if(order[x]){
printOrder[order[x]]=links[x]
//remember that in this case order[0] would
}
这应该给我一个如下所示的数组:
//var printOrder[undefined,foo,bar,a_shrubbery,foobar]
但是当我尝试遍历数组时:
for(x in printOrder){
printOrder[x].link.appendChild(printOrder[x].image)
printOrder[x].appendChild(printOrder[x].link)
printOrder[x].appendChild(printOrder[x].text)
document.getElementById("myDiv").appendChild(printOrder[x]);
}
I get foo, bar, foobar, a_shrubbery
作为输出。
我需要按键值对这个数组进行排序,或者以正确的顺序逐步执行它。