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]

 

posted @ 2018-07-27 17:36  你说我听  阅读(341)  评论(0编辑  收藏  举报