IE8以下浏览器不兼容数组的forEach和map方法,现特做以下处理
1、forEach的兼容处理
Array.prototype.myForEach=function(callback,context){
context=context||window;
if('forEach' in Array.prototype){
this.forEach(callback,context);
return;
}
for(var i=0; i<this.length; i++){
callback.call(context,this[i],i,this);
}
}
eg:
var ary=[12,34,56,89];
var obj={};
ary.myForEach(function(item,index,input){
input[index]=item*100;
},obj)
2、map的兼容处理
Array.prototype.myMap=function(callback,context){
context=context||window;
if('map' in Array.prototype){
return this.map(callback,context)
}
var ary=[];
for(var i=0; i<this.length; i++){
var val=callback.call(context,this[i],i,this);
ary.push(val);
}
return ary;
}