怪奇物语

怪奇物语

首页 新随笔 联系 管理

oop

img

fp

img

initialState从头到尾都没有变化

img

img

img

fp更喜欢递归代替循环

img

img

pure function

img

img

img

side effect

img

使用递归实现for循环

img

  1. 递归实现数组的累加
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function sumArr(arr, i) {
  if (i === arr.length) return 0;
  return arr[i] + sumArr(arr, i + 1);
}

const sum = sumArr(arr, 0);
console.log("sum = " + sum);

  1. 更加简化的形式
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function sumArr(arr, i) {
  return i === arr.length ? 0 : arr[i] + sumArr(arr, i + 1);
}
const sum = sumArr(arr, 0);
console.log("sum = " + sum);

img

声明式编程和命令式变量

img

不使用内置函数

img

  1. 再次升级
    img
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// 乞丐版
function filterOdd(arr) {
  if (arr.length === 0) return [];
  if (arr[0] % 2 === 1) {
    return [arr[0], ...filterOdd(arr.slice(1))];
  }
  return filterOdd(arr.slice(1));
}

// 装x版
function filterOdd(arr) {
  return arr.length === 0
    ? []
    : arr[0] % 2 === 1
    ? [arr[0], ...filterOdd(arr.slice(1))]
    : filterOdd(arr.slice(1));
}

const res = filterOdd(arr);
console.log("res = ", res);

感谢

  1. 感谢油管上个一个台湾小哥哥的分享的视频,走歪的james,原视频可以去搜一下
posted on 2023-03-12 22:45  超级无敌美少男战士  阅读(21)  评论(0)    收藏  举报