高阶函数

定义

一个函数的参数是函数,那么这个函数就是高阶函数。数组的遍历方法就是高阶函数,如:forEachmap等等。

细节

  • 保持纯函数,减少函数副作用;
  • 回调函数要使用 callapply 绑定 this

手写数组函数

forEach

function myForEach(arr, cb) {
  for (let i = 0; i < arr.length; i++) {
    cb.call(arr, arr[i], i, arr);
  }
}

map

function myMap(arr, cb) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    result.push(cb.call(arr, arr[i], i, arr));
  }
  return result;
}

reduce

function myReduce(arr, cb, init) {
  let result = arr[0];
  let i = 1;
  if (init) {
    i = 0;
    result = init;
  }
  for (; i < arr.length; i++) {
    result = cb.call(arr, result, arr[i], i, arr);
  }
  return result;
}
上一篇:机器学习,BootStrap


下一篇:1.26翻译