es6 最新函数封装(简易版)
map封装:
Array.prototype.map=function(fn){ var arr=this; var newArr=[] for(var i=0;i<arr.length;i++){ var ele=fn(arr[i],i); newArr.push(ele); } return newArr; }
reduce封装:
Array.prototype.reduce=function(fn,init){ var arr=this; for(var i=0;i<arr.length;i++){ init=fn(init,arr[i],i); } return init; }
some封装:
Array.prototype.some=function(fn){ var arr=this; for(var i=0;i<arr.length;i++){ var flag=fn(arr[i],i); if(flag){ return true; break; } } return false; }
every封装:
Array.prototype.every1=function(fn){ var arr=this; for(var i=0;i<arr.length;i++){ var flag=fn(arr[i],i); if(!flag){ return false; break; } } return true; }
filter封装:
Array.prototype.filter=function(fn){ var arr=this; var newArr=[]; for(var i=0;i<arr.length;i++){ var flag=fn(arr[i],i); if(flag) newArr.push(arr[i]) } return newArr; }
如何使用:
var arr=[1,2,3,4]; var flag=arr.some(function(item,index){ return item>2; }); console.log(flag); var newArr=arr.map(function(item,index){ return item*2; }); console.log(newArr); // 依次类推