版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FreeCodeCamp 基礎算法題答案解析總結下 FreeCodeCamp 基礎算法題:Reverse a String 先把字符串轉化成數組,再借助數組的 reverse 方法翻轉數 組順序,最後把數組轉化成字符串。function reverseString(str) return str.split().reverse().join(); reverseString(hello);Factorialize a Number 計算一個整數的階乘 ,如果用字母 n 來代表一個整數, 階乘代 表著所有小於或等於 n 的整數的乘積。階乘通常簡寫成 n! 例如: 5! = 1 2 3 4 5 =
2、 120 function factorialize(num) if(num 0)return -1;else if(num = 0)return 1; elsereturn num * factorialize(num-1);factorialize(5);/120Check for Palindromes 如果給定的字符串是回文,返回 true ,反之,返回 false 。如 果一個字符串忽略標點符號、大小寫和空格,正著讀和反著 讀一模一樣,那麼這個字符串就是 palindrome( 回文 )。 function palindrome(str) return str.replace(/W_
3、/g,).toLowerCase() = str.replace(/W_/g,).toLowerCase().split().reverse().join( );Find the Longest Word in a String 找到提供的句子中最長的單詞,並計算它的長度。函數的返 回值應該是一個數字。/法一/*function findLongestWord(str) myStr=str.split( );var longest=0;for(var i = 0;ilongest) longest=myStri.length;return longest;*/法二function findLo
4、ngestWord(str) myStr=str.split( );var arrnum=;for(i=0 ;imyStr.length;i+) arrnum.push(myStri.length);return Math.max.apply(null,arrnum);findLongestWord(The quick brown fox jumped over thelazy dog);Title Case a Sentence/法一 function titleCase(str) var arr=str.toLowerCase().split( );for (i=0;iarr.length
5、;i+)var char=arri.charAt(0); arri=arri.replace(char,char.toUpperCase();return arr.join( );/法二 function titleCase(str) var arr = str.toLowerCase().split( ); for (var i in arr) arri = arri.replace(arri.charAt(0), arri.charAt(0).toUpperCase();return arr.join( );titleCase(Im a little tea pot);Return Lar
6、gest Numbers in Arrays 右邊大數組中包含了 4 個小數組,分別找到每個小數組中的 最大值,然後把它們串聯起來,形成一個新數組。function largestOfFour(arr) var newArr = ;for (var i = 0 ;i 0 ? str.repeat(num) : ;repeat(abc, 3);Truncate a string 截斷一個字符串!如果字符串的長度比指定的參數 num 長, 則把多餘的部分用 . 來表示。切記,插入到字符串尾部的三 個點號也會計入字符串的長度。但是, 如果指定的參數 num 小於或等於 3 ,則添加的三個點號不會計入
7、字符串的長度。 function truncate(str, num) if(str.length 3)num -= 3;var truncted = str.substr(0,num);return truncted + .;truncate(A-tisket a-tasket A green and yellow basket, 11);Chunky Monkey把一個數組 arr 按照指定的數組大小 size 分割成若干個數組 塊。 span type=button data-toggle=tooltip data-placement=top data-clipboard-text=fu
8、nction chunk(arr, size) var myArr=;for (i=0;ifunction chunk(arr, size) var myArr=;for (i=0;iarr.length;i+=size)myArr.push(arr.slice(i,size+i);return myArr;chunk(a, b, c, d, 2);Slasher Flick返回一個數組被截斷 n 個元素後還剩餘的元素,截斷從索引 0 開始。function slasher(arr, howMany) return arr.slice(howMany);slasher(1, 2, 3, 2);
9、Mutations 如果數組第一個字符串元素包含了第二個字符串元素的所 有字符,函數返回 true 。function mutation(arr) var arr1 =arr0.toLowerCase();var arr2 =arr1.toLowerCase();for(var i = 0;i arr2.length;i+)if (arr1.indexOf(arr2i) 0) return false; return true;mutation(hello, hey);false 、Falsy Bouncer 刪除數組中的所有假值。在 JavaScript 中,假值有 null 、 0、 、u
10、ndefined 和 NaN 。function bouncer(arr) return arr.filter(Boolean);bouncer(7, ate, , false, 9);等同於:function bouncer(arr) return arr.filter(function(item,index,array)return Boolean(item););Seek and Destroy實現一個摧毀 (destroyer) 函數,第一個參數是待摧毀的數組, 其餘的參數是待摧毀的值。function destroyer(arr) var arr1 = Array.from(argu
11、ments)0;var arr2 = Array.from(arguments).slice(1);return arr1.filter(function(item)return arr2.indexOf(item) 0;); destroyer(1, 2, 3, 1, 2, 3, 2, 3);Where do I belong 先給數組排序,然後找到指定的值在數組的位置,最後返回 位置對應的索引。function where(arr, num) arr.push(num);/ 插入 arr.sort(function(a,b)return a-b;/ 排序);return arr.index
12、Of(num);where(40, 60, 50);下面我們來介紹風靡全球的凱撒密碼 Caesar cipher ,又叫 移位密碼。 移位密碼也就是密碼中的字母會按照指定的數量來做移位。 一個常見的案例就是 ROT13 密碼,字母會移位 13 個位置。 由 A ? N, B ? O ,以此類推。寫一個 ROT13 函數,實現輸入加密字符串,輸出解密字符 串。所有的字母都是大寫, 不要轉化任何非字母形式的字符 (例如: 空格,標點符號 ),遇到這些特殊字符,跳過它們。function rot13(str) / LBH QVQ VG!var index=null;var temp=;var _A=A.charCodeAt(0);var _Z=Z.charCodeAt(0);var mid=(_A+_Z)/2;for (i=0;i=_A & index=mid)temp+=String.fromCharCode(index+13);else if(indexmid)temp +=String.fromCharCode(index-13); elsetemp +=String.fromCharCode(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国热带农业科学院香料饮料研究所第一批公开招聘8人(第1号海南)高频重点提升(共500题)附带答案详解
- 2025中国建筑第二工程局限公司北京分公司招聘10人高频重点提升(共500题)附带答案详解
- 2025中国华录集团限公司总部应届高校毕业生招聘高频重点提升(共500题)附带答案详解
- 2025中国人寿内蒙古分公司春季校园招聘114人高频重点提升(共500题)附带答案详解
- 2025中储粮油脂限公司招聘高频重点提升(共500题)附带答案详解
- 2025下半年重庆酉阳自治县教育事业单位招聘125人历年高频重点提升(共500题)附带答案详解
- 2025下半年深圳事业单位(职员)历年高频重点提升(共500题)附带答案详解
- 2025下半年山东烟台市福山区事业单位招聘本科及以上学历毕业生入伍15人高频重点提升(共500题)附带答案详解
- 2025下半年四川省阿坝州事业单位招聘433人历年高频重点提升(共500题)附带答案详解
- 2025上海市阳光社区青少年事务中心招聘27名青年社工历年高频重点提升(共500题)附带答案详解
- 2024-2030年中国铝汽车紧固件行业销售规模与盈利前景预测报告
- 城市建设苗木吊装安全方案
- 中医院医生作风建设工作方案(6篇)
- DIY手工坊创业项目计划书
- (高清版)DB21∕T 1795-2021 污水源热泵系统工程技术规程
- 2024-2025学年人教版数学五年级上册期末检测试卷(含答案)
- 【MOOC】犯罪心理学-中南财经政法大学 中国大学慕课MOOC答案
- 《外盘期货常识》课件
- 【MOOC】土力学-西安交通大学 中国大学慕课MOOC答案
- 2024江苏盐城港控股集团限公司招聘23人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年三支一扶考试基本能力测验试题及解答参考
评论
0/150
提交评论