目录

  • 一、介绍
  • 二、目标
  • 三、代码
  • 四、答案

一、介绍

六大派围攻光明顶,为解除明教危机,张无忌临危受命,在小昭的帮助下进入明教圣地拿到乾坤大挪移心法。在这关键时刻,心法因没有妥善保存长久暴露在空气中,部分字体已不可见,下面需要由你来设计心法帮助张无忌习得神功,战胜六大门派。

二、目标

找到 main.js 文件中的“乾坤大挪移心法” mentalMethod 函数,完成函数中的 TODO 部分。

  1. mentalMethod 需要返回一个函数,可以一直进行调用,但是最后一次调用不传参。
  2. 函数通过以下方式执行,返回结果均为 ‘战胜峨眉,武当,少林’。
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蓝桥杯----乾坤大挪移心法相关推荐

  1. javaScript 蓝桥杯----梅楼封的一天

    目录 一.介绍 二.目标 1.函数入参要求: 2.出参要求: 三.输出示例 1.示例一 2.示例二 3.示例三 4.示例四 5.示例五 四.待完善代码 五.知识点 1.正则表达式 2.split方法 ...

  2. JavaScript蓝桥杯------学海无涯

    目录 一.介绍 二.准备 三.目标 四.代码 五.完成 一.介绍 小蓝最近一直在云课平台学习,为了更好的督促自己,于是将每天的学习时间都记录了下来,但是如何更加直观的显示学习时间让小蓝很是苦恼.本题需 ...

  3. javaScript蓝桥杯----偷梁换柱

    目录 一.介绍 二.目标 三.代码 四.知识点 1. Object.defineProperty 五.答案 一.介绍 随着医疗水平的进步,人的平均寿命在慢慢提升.现在全球平均预期寿命是 73.2 岁, ...

  4. javaScript蓝桥杯----绝美宋词

    目录 一.介绍 二.准备 三.目标 四.代码 五.踩坑 六.完成 一.介绍 "今宵酒醒何处,杨柳岸晓风残月","蓦然回首,那人却在灯火阑珊处","试问 ...

  5. javaScript蓝桥杯-----平地起高楼

    目录 一.介绍 二.目标 三.代码 四.完成 一.介绍 我们的国家国土面积十分的广阔,目前中国有 34 个省级行政区,包括 23 个省.5 个自治区.4 个直辖市.2 个特别行政区.其下面还有几千个县 ...

  6. javaScript蓝桥杯---分阵营,比高低

    目录 一.介绍 二.准备 三.目标 四.代码 五.答案 一.介绍 期末考试结束不久,辛勤的园丁们就将所有学生的考试成绩汇总完毕.不过现在遇到一个问题,那就是目前所有学生的考试数据均混杂在一起.这些数据 ...

  7. 4.7蓝桥杯做题-心愿便利贴-消失的 Token-封装 Promisefy 函数-趣购-乾坤大挪移心法

    4.7蓝桥杯做题 文章目录 4.7蓝桥杯做题 1.心愿便利贴 2.消失的 Token 3.封装 Promisefy 函数 4.趣购 5.乾坤大挪移心法 总结: 1.心愿便利贴 在初始化的时候输入框并没 ...

  8. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

  9. 蓝桥杯Web应用开发

    文章目录 介绍 策略 课程 题目 学习笔记 1.水果拼盘 2.分一分 3.冬奥大抽奖 4.灯的颜色变化 5.购物车 6.类型判断 7.商品销量和销售额实时展示看板 8.粒粒皆辛苦 9.水果叠叠乐 10 ...

最新文章

  1. ural 1014. Product of Digits
  2. mysql c webservice_如何编写webservice c
  3. java实现 - 树的层序遍历
  4. 转:Java NIO系列教程(二) Channel
  5. 努力就一定会成功,这或许是一个问题?
  6. 拓端tecdat|在Python和R中使用交叉验证方法提高模型性能
  7. 分析java 嵌套类与内部类
  8. 理解图像处理中的 双线性内插法(图文说明)
  9. 企业邮箱哪个比较安全好用?外贸邮箱品牌哪个好用?
  10. 各大电商历史价格json后端接口
  11. iOS UITableview 禁止上下弹性或一个方向弹性
  12. 蓝牙模块 HC08_两个STM32开发板无线通信
  13. msp430流水灯c语言程序,基于MSP-EXP430F5529开发板流水灯程序
  14. 计算机论文折线图,干货 | 画论文折线图、曲线图?几个代码模板轻松搞定!
  15. 农牧行业销售经理生存手册(一)
  16. 【Vue】全局变量的定义及使用
  17. C++编程基础入门知识(最详细建议收藏)
  18. python 中的butter函数
  19. 视频教程-Oracle从入门到精通全套视频教程之SQL与PLSQL(四)-Oracle
  20. Σ-Δ型ADC转换原理及程序设计--AD7712

热门文章

  1. Recyclable Counter With Confinement (RCC)浅析
  2. Spring源码深度解析(郝佳)-学习-源码解析-factory-method
  3. 汉字转拼音 python_python把汉字转换成拼音实现程序
  4. springboot集成flowable简单实例入门
  5. web 文本溢出处理显示省略号
  6. 黑马day08map-stream-File-IOapp
  7. 超级哇塞的快排,你值得学会!
  8. Java 签章操作的设计与实现
  9. C#开发OPC DA客户端的服务器状态处理
  10. ICAM V17 V19 V21 V22