怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

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   超级无敌美少男战士  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示