js中對數組操作的封裝
阿新 • • 發佈:2018-10-24
一個 == 位置 操作 n) length spa clas log
var arr=[1,2,3,4]; // 1.求和 var sum=0; for(var i=0;i<arr.length;i++){ sum+=arr[i]; } console.log(sum); //求最大值 var max=arr[0]; for(var i=0;i<arr.length;i++){ if(arr[i]>max){ max=arr[i]; } } console.log(max); //求最小值 var min=arr[0]; for(var i=0;i<arr.length;i++){ if(arr[i]<min){ min=arr[i]; } } console.log(min); //查找3的位置 var find1=-1; for(var i=0;i<arr.length;i++){ if(arr[i]===3){ find1=i; break; } } console.log(find1); //查找5 var find2=-1; for(var i=0;i<arr.length;i++){ if(arr[i]===5){ find2=i; break; } } console.log(find2);
上面是普通的方式進行的操作。
我們分析它的for循環復用了多次,所以想辦法封裝成一個函數來做。
//上面的求數組的值都是有用到for循環,所以我們想辦法去封裝一個函數。 var each=function(arr,fn){ for(var i=0;i<arr.length;i++){ fn(i,arr[i]); } } //求和 var sum=0; each(arr,function(i,v){ sum+=v; }); console.log(sum); //求最大值 var max=arr[0]; each(arr,function(i,v){ if(v>max){ max=v; } }); console.log(max); //求數組的偶數行 var even=[]; each(arr,function(i,v){ if(i%2==0){ even.push(v); } }); console.log(even);
js中對數組操作的封裝