javaScript蓝桥杯----乾坤大挪移心法
目录
- 一、介绍
- 二、目标
- 三、代码
- 四、答案
一、介绍
六大派围攻光明顶,为解除明教危机,张无忌临危受命,在小昭的帮助下进入明教圣地拿到乾坤大挪移心法。在这关键时刻,心法因没有妥善保存长久暴露在空气中,部分字体已不可见,下面需要由你来设计心法帮助张无忌习得神功,战胜六大门派。
二、目标
找到 main.js 文件中的“乾坤大挪移心法” mentalMethod 函数,完成函数中的 TODO 部分。
- mentalMethod 需要返回一个函数,可以一直进行调用,但是最后一次调用不传参。
- 函数通过以下方式执行,返回结果均为 ‘战胜峨眉,武当,少林’。
mentalMethod('峨眉')('武当')('少林')();
mentalMethod('峨眉','武当')('少林')();
mentalMethod('峨眉','武当','少林')();
注意逗号为英文逗号。
完成后,在命令行输入 node main.js 效果如下:
三、代码
js
function mentalMethod(...args) {// TODO 待补充代码 }
console.log(mentalMethod('峨眉')('武当')('少林')());
console.log(mentalMethod('峨眉', '武当')('少林')());
console.log(mentalMethod('峨眉', '武当', '少林')());// 以下代码为测试使用,请勿删除
module.exports = {mentalMethod
}
一开始想这道题思考了很多 闭包 立即执行函数 等等 要注意的是返回函数而不立即执行
四、答案
法一: 我觉得这种解法的缺点就是要使用外部数组
//内部函数能够访问外部变量
let arr = []
function mentalMethod(...args){//创建一个数组的深拷贝,让你可以安全地对该数组进行修改而不会影响到原始数组。const newArr = JSON.parse(JSON.stringify([...args]))//将数组中的元素赋值给外部数组for(let i of newArr){arr.push(i)}//如果数组长度大于1,说明还在调用该函数就返回函数本身if(newArr!=0){return mentalMethod}else{//否则返回字符串let str = '战胜' + arr.join(',')//由于它是连续调用的,所以每次调用完后都要清空数组arr = []return str}}
console.log(mentalMethod('峨眉')('武当')('少林')());
console.log(mentalMethod('峨眉', '武当')('少林')());
console.log(mentalMethod('峨眉', '武当', '少林')());
法二: 这种解法就是为了得到正确答案不择手段的做法
function mentalMethod(...args) {// TODO 待补充代码if(args.length){return mentalMethod}else{return '战胜峨眉,武当,少林'}
}
法三:利用闭包解决外部数组
function mentalMethod(...args) {// TODO 待补充代码let str = ''str += args.join(',')//闭包做法let newFn = function (...args) {//如果arsg.length>0,说明还有参数,继续递归调用if (args.length > 0) {str += ',' + args.join(',')return newFn} else {//如果没东西了,就返回结果return '战胜' + str}}//上面这个函数走出来说明函数调用结束了 且str已经赋值完成return newFn
}console.log(mentalMethod('峨眉')('武当')('少林')());
console.log(mentalMethod('峨眉', '武当')('少林')());
console.log(mentalMethod('峨眉', '武当', '少林')());
javaScript蓝桥杯----乾坤大挪移心法相关推荐
- javaScript 蓝桥杯----梅楼封的一天
目录 一.介绍 二.目标 1.函数入参要求: 2.出参要求: 三.输出示例 1.示例一 2.示例二 3.示例三 4.示例四 5.示例五 四.待完善代码 五.知识点 1.正则表达式 2.split方法 ...
- JavaScript蓝桥杯------学海无涯
目录 一.介绍 二.准备 三.目标 四.代码 五.完成 一.介绍 小蓝最近一直在云课平台学习,为了更好的督促自己,于是将每天的学习时间都记录了下来,但是如何更加直观的显示学习时间让小蓝很是苦恼.本题需 ...
- javaScript蓝桥杯----偷梁换柱
目录 一.介绍 二.目标 三.代码 四.知识点 1. Object.defineProperty 五.答案 一.介绍 随着医疗水平的进步,人的平均寿命在慢慢提升.现在全球平均预期寿命是 73.2 岁, ...
- javaScript蓝桥杯----绝美宋词
目录 一.介绍 二.准备 三.目标 四.代码 五.踩坑 六.完成 一.介绍 "今宵酒醒何处,杨柳岸晓风残月","蓦然回首,那人却在灯火阑珊处","试问 ...
- javaScript蓝桥杯-----平地起高楼
目录 一.介绍 二.目标 三.代码 四.完成 一.介绍 我们的国家国土面积十分的广阔,目前中国有 34 个省级行政区,包括 23 个省.5 个自治区.4 个直辖市.2 个特别行政区.其下面还有几千个县 ...
- javaScript蓝桥杯---分阵营,比高低
目录 一.介绍 二.准备 三.目标 四.代码 五.答案 一.介绍 期末考试结束不久,辛勤的园丁们就将所有学生的考试成绩汇总完毕.不过现在遇到一个问题,那就是目前所有学生的考试数据均混杂在一起.这些数据 ...
- 4.7蓝桥杯做题-心愿便利贴-消失的 Token-封装 Promisefy 函数-趣购-乾坤大挪移心法
4.7蓝桥杯做题 文章目录 4.7蓝桥杯做题 1.心愿便利贴 2.消失的 Token 3.封装 Promisefy 函数 4.趣购 5.乾坤大挪移心法 总结: 1.心愿便利贴 在初始化的时候输入框并没 ...
- 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题
大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...
- 蓝桥杯Web应用开发
文章目录 介绍 策略 课程 题目 学习笔记 1.水果拼盘 2.分一分 3.冬奥大抽奖 4.灯的颜色变化 5.购物车 6.类型判断 7.商品销量和销售额实时展示看板 8.粒粒皆辛苦 9.水果叠叠乐 10 ...
最新文章
- Oracle Golden Gate体系架构详解(原创) - CzmMiao的博客生活 - ITeye技术网站
- 郭毅可教授在线受聘清华大学杰出访问教授并举行学术报告会
- python 执行shell命令行效率提升_在python脚本中执行shell命令的方法
- TypeScript里的类型合并操作符
- python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...
- matlab简易编程,MATLAB简单编程
- Tomcat 改BUG之 localhost:8080 404
- 如何用 Hook 实时处理和保存 Ajax 数据
- vb 通过php连接mysql数据库连接_php连接mysql数据库
- STM8学习笔记---定时器输出7路PWM波
- jquery select
- 物联网云计算成本核算 小厂的出路在哪里
- 51Nod-1101 换零钱【0/1背包+DP】
- 面试官:说说什么是 Java 内存模型(JMM)?
- Python之GUI编程 实现界面化的词云图生成器.exe
- 【RASA】NLU模块组件分析
- 2021年 IOS的发布流程(企业版那 无法下载,无法安装)
- 吉林大学单片机实验课实验五——重量测量
- 学3d建模和计算机编程,超好用的3D建模软件全科普,想要学好建模的你千万别错过!...
- 数据结构与算法之美笔记-链表(Linked list)