如果使用數組的方式,你最終用含有大量undefined
值的數組:
var myarr = [];
myarr[1000] = 'hello';
console.log(myarr.length); //=> 1001
console.log(myarr[0]); //=> undefined
console.log(myarr[999]); //=> undefined
所以,你可能需要使用的對象爲,並使用某種排序。例如
var myobj = {}, timestamp = new Date().getTime();
myobj[timestamp] = ['hello','world'];
myobj[timestamp+1] = 'how are we today?';
function retrieveSorted(obj){
var keys = Object.keys(obj).sort(), key, ret = [];
while(key = keys.shift()){
ret.push(obj[key]);
}
return ret;
}
var sorted = retrieveSorted(myobj);
//=> [["hello", "world"], "how are we today?"]
myobj[timestamp][1]; //=> world
很好的解釋了JavaScript數組初始化問題,並證明了一個很好的選擇。 – 2012-04-28 12:59:39
我很肯定今天使用的大多數JS引擎都可以處理稀疏數組,所以不會有太大的區別。 – 2012-04-28 14:43:21
@KooiInc這太棒了!我的確遇到了初始化問題,因此我爲此苦苦掙扎。感謝您的優秀建議。 問候,本。 – Ben 2012-04-28 16:51:23