javascript for in出错?
在美拓blog上看到篇文章,JavaScript求数组最大最小值的超简洁代码,
在网上又搜到了在数组对象原型上绑定方法函数
Array.prototype.max = function(){
return Math.max.apply({},this)
};
Array.prototype.min = function(){
return Math.min.apply({},this)
};
于是写了段小测试如下
var arr = [10,20,30,40];
function aa(){
alert(arr);
alert("最大值"+arr.max());
for(i in arr){
arr[i] +=10;
t=setTimeout(aa,2000);
};
aa();
发现第一遍运行正常,第二遍却不行。
把for(i in arr)改成了for(var i=0; i<arr.length;i++)
原来是for(i in arr) 是用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
可以在for(i in arr) 里面加个alert(arr[i]),结果会多出arr[max]和arr[min],这才是错误所在。






