如果使用数组的方式,你最终用含有大量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