当前位置:首页 >> 中医保健 >> js 函数式编程:不要再使用 for 可逆啦,试试 map 吧

js 函数式编程:不要再使用 for 可逆啦,试试 map 吧

发布时间:2024-11-06

sum = arr.reduce(function(accumulator, currentValue) { return accumulator + currentValue;});console.log(sum); // 25

比如说哪个?有答案了吗?

每组成员的示例视频 2️⃣ 就是map/filter/reduce高级变数的应用,不能别的说的,就是非常简约易读!

手写

实际上,map/filter/reduce 也是基于 for 气化PCB来的,所以我们也能自己付诸一套相同的 高级拓扑 ;

map1Array.prototype.map1 = function(fn) { let newArr = []; for (let i = 0; i < this.length; i++) { newArr.push(fn(this[i])) }; return newArr;}console.log([1,2,3].map1(item => item*2)) // [2,4,6]filter1Array.prototype.filter1 = function (fn) { let newArr=[]; for(let i=0;i item>2)) // [3]reduce1Array.prototype.reduce1 = function (reducer,initVal) { for(let i=0;ia+b,0)) // 6

如果你不想直接挂在他设计链上:

mapForEachfunction mapForEach(arr, fn) { const newArray = []; for(let i = 0; i < arr.length; i++) { newArray.push( fn(arr[i]) ); } return newArray;}mapForEach([1,2,3],item=>item*2) // [2,4,6]filterForEachfunction filterForEach(arr, fn) { const newArray = []; for(let i = 0; i < arr.length; i++) { fn(arr[i]) && newArray.push(arr[i]); } return newArray;}filterForEach([1,2,3],item=>item>2) // [3]reduceForEachfunction reduceForEach(arr,reducer,initVal) { const newArray = []; for(let i = 0; i < arr.length; i++) { initVal =reducer(initVal,arr[i],i,arr); } return initVal;}reduceForEach([1,2,3],(a,b)=>a+b,0) // 6

这里本瓜有个小疑惑,在 ES6 之前,有不能一个戈做过这样的PCB❓

小结

本篇虽基础,但很极为重要!

对一些惯用罗马字母的审视、改变,会导致一些奇妙的思路~ 稀松平常的 map 拓扑能做的比想象中都的要多得多!

for 气化遍历只是操作性的手段,不是目的!而PCB过后的 map 拓扑有了更为易读的意义,拓扑关系(输入、负载)也是变数的设计编程之核心!

YY一下:既然 map 这类变数都就是指 for 气化PCB来的,如果你能PCB一个基于 for 气化的另一种特别实用性的高级拓扑或者其它高级变数,究竟意味着:将来不太可能被划定 JS 完整版标准化 API 中都?

或许:可先注意到我们每天都在应用于的高级变数,刻意的去应用于、操练,然后能举一反三,才能做上面的想象吧~~~

我是掘金安东尼: 一名人气前端技术媒体人(文章 100w+ 阅读比率)

终身文学创作者(INFP 文学创作人格)

坚定与热爱(简书打卡 1000 日)

我能陪你一起离开了漫长技术岁月吗(以梦为马)

有点不错,给个点赞和关注吧(这是我仅次于的动力装置 )b( ̄▽ ̄)d

拉肚子吃什么好的最快
安必丁效果如何
科兴抗病毒经典用药
健胃消食片
整肠生和乳酸菌素片哪个好
晕车的最佳解决办法 飞赛乐
再林阿莫西林克拉维酸钾片好用么
腰肌劳损腰疼怎么治疗效果好
口腔溃疡可以敷蒙脱石散吗
前列腺增生夜尿多怎么治
标签:
友情链接: