回答1号さんの言う通りです。
なので方法かデータ形式を変える必要があります。
方法の一つは、キーのリストをソートしたものを用意しておいて、それを参照する方法。
var sorted = array.keys().sort(function(a,b){return a-b;}); for(var i=0; i<sorted.length; i++){ // .... foo = array[sorted[i]]; // .... }
こんな感じ?
もう一つの方法はデータ形式を変えてしまう方法。
var array = [{k:12,v:[1,2,aaa]}, {k:20,v:[5,9,bbb]}, {k:8,v:[4,7,ccc]}, {k:...,v:...}, ...];
こんな感じで。これだと以下の様に。
array.sort(function(a,b){return a.k-b.k;});
参考:
http://lostlinksearch.net/blog/2012/03/javascript%E9%85%8D%E5%88%97%E3%81%AE%E9%85%8D%E5%88%97%E3%83%BB%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E9%85%8D%E5%88%97%E3%82%92%E3%82%BD%E3%83%BC%E3%83%88/
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Object/keys
keysが使えなければfor in構文で代替を。
あと、配列名にarrayはちょっと(Arrayがあるので)。arrとかdataとか。まあいいけど。