这就是我想要做的。我有一个像下面这样的数组
var my_array = ['1', '2', '3' ... ,'1000000000000000'];
我想要做的是为该数组的每个元素创建一堆 HTML 元素,并且由于该数组可以包含大量元素,我尝试执行以下操作,因此浏览器不会冻结。
for(var i in my_array)
{
if(my_array.hasOwnProperty(i))
{
setTimeout(function(){
do_something_with_data(my_array[i]);
});
}
}
但发生的情况是 setTimeout 中的 my_array[i] 没有应有的值。
更准确地说,当我尝试console.log(my_array[i])
得到的结果是这样的:
"getUnique" function (){
var u = {}, a = [];
for(var i = 0, l = this.length; i < l; ++i){
if(u.hasOwnProperty(this[i])) {
continue;
}
a.push(this[i]);
u[this[i]] = 1;
}
return a;
}
getUnique 是我添加到 Array 原型中的一个函数,如下所示:
Array.prototype.getUnique = function(){
var u = {}, a = [];
for(var i = 0, l = this.length; i < l; ++i){
if(u.hasOwnProperty(this[i])) {
continue;
}
a.push(this[i]);
u[this[i]] = 1;
}
return a;
};
有人可以帮我解决这个问题吗?