Js基础算法题
1、字符串翻转
1 要求:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串 2 3 function reverseString(str) { 4 str=str.split('').reverse().join(''); 5 return str; 6 } 7 reverseString("hello"); 8 //split方法把字符串转换成数组 9 //reverse方法翻转数组顺序 10 //join 方法来把数组转换成字符串
2、如果给定的字符串是回文,返回true
,反之,返回false
1 如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是回文。 2 需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。 3 4 function test(str) { 5 astr=str.replace(/[^0-9A-Za-z]/g,'').toLowerCase(); 6 bstr=astr.split("").reverse().join(""); 7 if(astr===bstr){ 8 return true; 9 }else{ 10 return false; 11 } 12 } 13 test("eye");
3、找到提供的句子中最长的单词,并计算它的长度
1 function words(str) { 2 //转化成数组 3 var astr=str.split( " " ); 4 //对数组中每个元素的字符串长度进行比较,按照字符串长度由大至小排列数组顺序。 5 var bstr=astr.sort(function(a,b){ 6 return b.length-a.length; 7 }); 8 //取出数组中第一个元素(也就是最大长度的字符串) 9 var lenMax= bstr[0].length; 10 //返回长度值 11 return lenMax; 12 } 13 14 words("I am a little gril and vary lovely"); 15 16 //结果:6
4、确保字符串的每个单词首字母都大写,其余部分小写
function like(str) { var astr=str.toLowerCase().split(' '); for(var i=0 ; i<astr.length; i++){ astr[i]=astr[i][0].toUpperCase()+astr[i].substring(1,astr[i].length); } var string=astr.join(' '); return string; } like('I have two beautifal eyes'); //结果:I Have Two Beautifal Eyes
5、大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们拼成一个新数组
function largestOfFour(arr) { var newArr=[]; for(i=0;i<arr.length;i++){ arr[i].sort(function(a,b){ return b-a; }); newArr.push(arr[i][0]); } return newArr; } largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); // 结果 [5, 27, 39, 1001]