您的位置:首页 > 新闻 > 资讯 > 三室二厅二卫装修全套效果图_建筑企业资质怎么查_湖南网站建设推广_深圳网站建设推广

三室二厅二卫装修全套效果图_建筑企业资质怎么查_湖南网站建设推广_深圳网站建设推广

2025/7/7 11:42:46 来源:https://blog.csdn.net/s1316339343/article/details/146525243  浏览:    关键词:三室二厅二卫装修全套效果图_建筑企业资质怎么查_湖南网站建设推广_深圳网站建设推广
三室二厅二卫装修全套效果图_建筑企业资质怎么查_湖南网站建设推广_深圳网站建设推广

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议


由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题,在这里只提供部分原题代码

本题目为:备赛蓝桥杯之第十六届模拟赛2期职业院校组第五题:文本自动生成器


题目:

经过运行环境运行之后的效果如下:

本题需要做的代码如下:

/*** 组合多个中间件函数,形成一个新的中间件函数。* @param {...Function} middlewares - 要组合的中间件函数。* @return {Function} - 组合后的中间件函数。*/
function compose(...middlewares) {// TODO : 待补充代码 
}

 本题目标如下:

完善 js/compose.js 中 compose 函数的 TODO 部分,完成以下目标:

compose 函数接收多个中间件函数作为参数,每个函数中必须调用 next(arg) 将函数的执行值传递到下一个参数

所有中间件函数接受两个参数:initialValue 和 callbackinitialValue 是将通过中间件函数传递的初始值,而 callback 是在所有中间件函数执行完毕后将被调用并传入最终值的函数。

compose 函数的执行逻辑如下:它按照传入的顺序执行中间件函数,对每个中间件函数传递当前值。如果中间件函数返回一个值,则通过 next(arg) 的像是将其传递给下一个中间件函数。

compose 函数返回一个新的中间件函数,可以用于按顺序执行合并后的中间件函数。

compose 执行示例如下:

function add(str, next) {str+='2'next(str);
}
function add2(str, next) {str+='3'next(str);
}
const processdemo = compose(add,add2); //传入的函数会按照顺序执行
processdemo("1", (finalValue) => {console.log(finalValue) // 123
});
const processdemo2 = compose(add2,add);
processdemo2("1", (finalValue) => {console.log(finalValue) // 132
});

说人话:

        我们要做的是,定义一个能把所有中间件的方法链式执行下来的compose方法


本题作者想说

答案:

/*** 组合多个中间件函数,形成一个新的中间件函数。* @param {...Function} middlewares - 要组合的中间件函数。* @return {Function} - 组合后的中间件函数。*/
function compose(...middlewares) {// TODO : 待补充代码 return function (initialValue, callback) {let index = -1function next(item) {index++let handlefunction = middlewares[index]if (!handlefunction) {return callback(item)}handlefunction(item, next)}next(initialValue)}
}

作者自我解释版:

function compose(...middlewares) {// TODO : 待补充代码 // 我们要做的是,定义一个能把所有中间件的方法链式执行下来的compose方法// 因为我们定义的是一个执行方法,所以返回一个函数// 该函数只接收两个参数initialValue 和 callback,initialValue 是初始值,callback 是执行完毕返回。return function (initialValue, callback) {// 首先我们要定义一个数值,用于执行对应的数量函数// 函数是从0开始的,当我们执行整个函数时,就要调用第一个函数,因此将index定义为-1,以便当index++时,执行第0个函数let index = -1// 强调一遍,基本的方法都已经做好了,我们主要做的做链式执行的next函数,以便顺序顺利执行// 定义一个next方法,传入一个初始值function next(item) {// index++开始执行index++// 定义一个正在执行的方法,相比于middlewares不同的是,handlefunction已经排好了序let handlefunction = middlewares[index]// 当所有函数都已经被调用后,即handlefunction为假,整个条件为真,则执行回调函数if (!handlefunction) {// 返回callback函数return callback(item)}// 除此之外,不仅定义了handlefunction函数还要使用这个函数// 将item传入进去,并且再次执行next函数,以达到顺序循环执行handlefunction(item, next)}// 初始值注入next(initialValue)}
}

感谢观看此篇文章,谢谢大家的支持,本片文章只是我自己学习的历程,有些写的不好地方欢迎大家交流改动。

长路漫漫,我们还需努力!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com