exportfunctionreduce(arr, callback, initValue){// 声明变量let result = initValue;// 执行回调for(let i=0;i<arr.length;i++){// 执行回调
result =callback(result, arr[i]);}// 返回最终的结果return result;}
手写函数 reduce 的应用,代码如下所示:
// 声明一个数组const arr =[1,2,3,4,5];// reduce 函数调用let result = arr.reduce(function(res, value){return res + value;},0);
console.log(result);let result =reduce(arr,function(res, value){return res + value;},10);
三、filter 方法
filter 方法,将所有在过滤函数中返回 true 的数组元素放在一个新数组中并返回。
filter 的实现,代码如下所示:
exportfunctionfilter(arr, callback){// 声明空数组let result =[];// 遍历数组for(let i=0;i<arr.length;i++){// 执行回调let res =callback(arr[i], i);// 判断 如果为真则压入到 result 结果中if(res){
result.push(arr[i]);}}// 返回结果return result;}
手写函数 filter 的应用,代码如下所示:
// 声明一个数组const arr =[1,2,3,4,5];//filter 函数调用const result = arr.filter(item=> item %2===1);const result =filter(arr,item=> item %2===0);
console.log(result);