写在前面的话
本贴仅为个人在做题过程中整理,写这个贴有三个目的
- 给自己的回忆
防止自己学习完了又给忘了,把做题的思路或者解题过程写下来,有空来看看 - 盼望大牛来指导
初次学习思路/代码规范等方面还有很大的欠缺,希望把我的东西写出来,把自己给亮出来希望得到大家的指导与纠正(不胜感激) - 大家一起学习交流---------三个臭皮匠顶个诸葛亮
所谓仁者见仁智者见智,同一道题有不同的解法,多种思路的碰撞会得到最优的或者较为适宜的解决方法,大家也能一起开阔思路,拓宽视野,欢迎大家前来交流
阶乘计算
function factorialize(num) {
var i=1;
var array=[];
while(i<=num)
{
array.push(i);
i++;
}
var result= array.reduce((a,b)=>a*b,1);
return result;
}
factorialize(5);
回文检查
function palindrome(str) {
str=str.toLowerCase();
var p1=/ |,|\.|-|\/|\_|\(|\)/gi;
str= str.replace(p1,'');
str=str.toLowerCase();
var myStr=str.split('');
var test=(val)=>val!==' ';
var newArray = myStr.filter(test);
str=newArray.join('');
myStr= newArray.reverse();
var myS=myStr.join('');
if(myS===str)
return true;
else
return false;
}
palindrome("0_0 (: /-\ :) 0-0");
找出最长单词
function findLongestWord(str) {
var strArray= str.split(' ');
var maxCallback2 = ( max, cur ) => Math.max( max, cur );
return strArray.map( el => el.length ).reduce( maxCallback2, 0 );
}
findLongestWord("The quick brown fox jumped over the lazy dog");
找出多个数组中的最大数
function largestOfFour(arr) {
var myMax=(val)=>Math.max.apply(null, val);
var max= arr.map(myMax);
return max;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
检查字符串结尾
function confirmEnding(str, target) {
// return str.substr(str.length-target.length,target.length)===target?true:false;
var resultStr= str.substr(str.length-target.length,target.length);
var result=resultStr===target?true:false;
return result;
}
confirmEnding("Bastian", "n");
金克斯的迫击炮
–Seek And Destroy–
function destroyer(arr) {
var num=[];
for(i=1;i<arguments.length;i++)
{
num.push(arguments[i]);
}
var result= arr.filter(function(val){
return num.indexOf(val)<0;
});
return result;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
凯撒密码
– Caesars Cipher–
function rot13(str) {
var charCode=[];
//将所有的字符转为十进制编码数组
for(i=0;i<str.length;i++)
{
charCode.push(str.charCodeAt(i));
}
//使用map遍历数组,并进行字符位置移动,右移13位,非字母字符不进行处理
var result= charCode.map(function(val){
if(val>=65&&val<=90)
{
val=val+13;
//当字符编码超出字母编码范围时进行矫正即-90+65,使其返回到字符编码范围
val= val>90?(val-26):val;
return String.fromCharCode(val);
}
return String.fromCharCode(val)
});
return result.join('');
}
rot13("SERR PBQR PNZC");