freeCodeCamp-Basic Algorithm Scripting
来源:互联网 发布:淘宝用图片找商品 编辑:程序博客网 时间:2024/05/16 04:20
1、如果给定的字符串是回文,返回true,反之,返回false。
/* 如果给定的字符串是回文,返回true,反之,返回false。如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。function palindrome(str) { // Good luck! var reg=/\W|_/ig; str=str.replace(reg,""); str=str.toLowerCase(); var rts=str.split(""); rts.reverse(); rts=rts.join(""); if(str===rts){ return true; }else{ return false; }}palindrome("eye");*/
2、找到提供的句子中最长的单词,并计算它的长度。
/*找到提供的句子中最长的单词,并计算它的长度。方法1、function findLongestWord(str) { var reg=/\b\w+\b/ig; var myArray; var msg = [] ; while ((myArray = reg.exec(str)) !== null) { if(myArray[0].length>msg.length){ msg=myArray[0]; } } return msg.length;}方法2、function findLongestWord(str) { var reg=/\s+/ig; var arr=str.split(reg); var max=""; for(var i=0;i<arr.length;i++){ arr[i].length>max.length&&(max=arr[i]); } return max.length;}*/
3、确保字符串的每个单词首字母都大写,其余部分小写。
/*确保字符串的每个单词首字母都大写,其余部分小写。 function titleCase(str) { str=str.toLowerCase(); var arr=str.split(""); for(var i=0;i<arr.length;i++){ if(i==(arr.length-1)&&arr[i]==" "){break;}; arr[i]==" "&&(arr[i+1]=arr[i+1].toUpperCase()); } arr[0]=arr[0].toUpperCase(); str=arr.join(""); console.log(str) return str;}titleCase("I'm a little tea pot");*/
4、分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。
/*分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。function largestOfFour(arr) { var max=[],a=0; for(var i=0;i<arr.length;i++){ max[a]=arr[i][0]; for(var j=0;j<arr[i].length;j++){ (max[a]<arr[i][j])&&(max[a]=arr[i][j]); } a++; } return max;}largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);*/
5、检查一个字符串(str)是否以指定的字符串(target)结尾。
/*检查一个字符串(str)是否以指定的字符串(target)结尾。function confirmEnding(str, target) { var arr=str.split(/\s+/ig); var len=arr.length; if(arr[len-1]==target){ return true; }else{ for(var i=arr[len-1].length;i>(arr[len-1].length-target.length);i--){ if(arr[len-1][i-1]!=target[i-(arr[len-1].length-target.length)-1]){ return false; } } return true; }}console.log(confirmEnding("He has to give me a new name", "me"))*/
6、截断一个字符串!如果指定的参数num大于或等于3,则添加的三个点号会计入字符串的长度。
/*截断一个字符串!如果指定的参数num大于或等于3,则添加的三个点号会计入字符串的长度。function truncate(str, num) { // Clear out that junk in your trunk if(str.length>num){ str=num>4?str.slice(0,num-3):str.slice(0,num); str+='...'; } return str;}truncate("A-tisket a-tasket A green and yellow basket", 11);*/
7、把一个数组arr按照指定的数组大小size分割成若干个数组块。
/*把一个数组arr按照指定的数组大小size分割成若干个数组块。 function chunk(arr, size) { // Break it up. var result=[]; for(var i=0,a=0;i<arr.length;i+=size,a++){ result[a]=[]; for(var j=0;j<size;j++){ console.log(arr[j+i]) if(arr[j+i]==undefined) break; result[a][j]=arr[j+i]; } } return result;}console.log(chunk([0, 1, 2, 3, 4, 5], 3));*/
8、
/*function slasher(arr, howMany) { // it doesn't always pay to be first if(howMany>arr.length) return []; arr=arr.slice(howMany); return arr;}slasher([1, 2, 3], 2);*/
9、如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。
/*如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。function mutation(arr) { arr[0]=arr[0].toLowerCase();arr[1]=arr[1].toLowerCase(); for(var i=0;i<arr[1].length;i++){ if(arr[0].indexOf(arr[1][i])==-1) return false; } return true;}console.log(mutation(["hello", "Hello"]))*/
10、删除数组中的所有假值。
/*删除数组中的所有假值。function bouncer(arr) { var newArr=arr.filter(function(val){ if(val) return val; }); return newArr;}bouncer([7, "ate", "", false, 9]);*/
11、写一个函数,返回一个数组。第一个参数是待摧毁的数组,其余的参数是待摧毁的值。
/*第一个参数是待摧毁的数组,其余的参数是待摧毁的值。function destroyer(arr) { // Remove all the values for(var i=1;i<arguments.length;i++){ if(arr.indexOf(arguments[i])!= -1){ var a=arguments[i]; arr=arr.filter(function(val){ return val!=a; }); } } return arr;}destroyer([1, 2, 3, 1, 2, 3], 2, 3);*/
12、先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。
/*先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。function where(arr, num) { arr.push(num); arr.sort(function(a,b){ return a-b; }); console.log(arr); for(var i=0;i<arr.length;i++){ if(arr[i]==num) return i; }}console.log(where([10, 20, 30, 40, 50], 30))*/
13、写一个ROT13函数,实现输入加密字符串,输出解密字符串。
/*写一个ROT13函数,实现输入加密字符串,输出解密字符串。function rot13(str) { // LBH QVQ VG! var arr=str.split(""); arr=arr.map(function(val){ console.log(val) var code=val.charCodeAt(); if(code>64&&code<78){ val=code+13; }else if(code>=78&&code<91){ val=code+13-26; }else{ val=code; } val = String.fromCharCode(val); return val; }); str=arr.join(""); return str; }console.log(rot13("ABRR PBQR PNZY"));*/
部分代码有待优化
0 0
- freeCodeCamp-Basic Algorithm Scripting
- freeCodeCamp任务之Basic-Algorithm-Scripting
- freecodecamp advance algorithm scripting
- [FreeCodeCamp-JavaScript]Basic Algorithm
- codefreecamp-Basic Algorithm Scripting
- FCC-Basic Algorithm Scripting
- Intermediate Algorithm Scripting FreeCodeCamp中级算法
- FreeCodeCamp高级算法Advance Algorithm Scripting
- FCC Basic Algorithm Scripting 基础算法集
- FCC学习笔记-(五) Basic Algorithm Scripting
- [FreeCodeCamp-JavaScript]Intermediate Algorithm
- [FreeCodeCamp-Javascript]Advanced Algorithm
- FreeCodeCamp <Basic Javascript>
- Basic shell scripting questions
- Shell Scripting basic Interview questions
- Algorithm Basic Concept
- basic algorithm in python
- UE4引擎学习笔记:Blueprints Visual Scripting->Basic Scripting
- 静态链接中的那点事儿(2):C++二进制兼容性及跨平台初步
- 最近关于jquery的一点理解
- POJ题目分类(各种分类合集)
- theano入门学习
- 文章标题
- freeCodeCamp-Basic Algorithm Scripting
- 随心而动--Animation(1)
- tableView默认选择第一行数据
- hdu4455(递推)
- 栈的数学性质(Catalan函数)
- Visual C++ 之 调试程序
- 使用Win+R快捷键快速打开应用程序
- 滚动条替换
- 三维坐标变换