高阶函数

定义

一个函数的参数是函数,那么这个函数就是高阶函数。数组的遍历方法就是高阶函数,如: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;
}
posted @   梦渊同学  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示