美文网首页
字符串的操控

字符串的操控

作者: 辉夜乀 | 来源:发表于2017-04-11 21:24 被阅读27次

    1.使用数组拼接出如下字符串

    var prod = {
        name: '女装',
        styles: ['短款', '冬季', '春装']
    };
    
    function getTplStr(data){
      var str = '';
      str += '<dl class="product">\n';
      str += '\t<dt>' + data.name + '</dt>\n';
      for (var key in data.styles){
        str += '\t<dd>' + data.styles[key] + '</dd>\n'; 
      }
      str += '</dl>';
      return str;
    };
    
    var result = getTplStr(prod);
    console.log(result);
    
    
    // 输出
    <dl class="product">
        <dt>女装</dt>
        <dd>短款</dd>
        <dd>冬季</dd>
        <dd>春装</dd>
    </dl>
    

    2.写出两种以上声明多行字符串的方法

       //反斜杠‘\’换行法
    var str = 'aaaa\
    bbbb\
    cccc\
    dddd';
      // 反斜杠‘\’后面不能有空格
    console.log(str);
      // aaaabbbbccccdddd
    
    
    /*--------------------------------------------------------*/
      // 字符串‘+’的拼接法
    var str = 'aaaa' + 
              'bbbb' + 
              'cccc' + 
              'dddd' ;
    console.log(str);
      // aaaabbbbccccdddd
    
    
    /*--------------------------------------------------------*/
      // 函数的注释法
    function fn(){/*
    aaaa
    bbbb
    cccc
    dddd
    */}
    var str = fn.toString().split('\n').slice(1,length-1).join('');
      /*toString() 把函数 fn 转化成字符串
        split('\n') 把字符串以换行符‘\n’为切割点切割成数组
        slice(1,-1) 把数组掐头去尾截取出来
        join('') 把数组以空字符串''为连接点连接成字符串
      */ 
    console.log(str)
      // aaaabbbbccccdddd
    

    3.补全如下代码,让输出结果为字符串: hello\饥人谷

    var str = 'hello\\\\jirengu';
    console.log(str);
      // hello\\jirengu
    

    4.以下代码输出什么?为什么

    var str = 'jirengu\nruoyu'
    console.log(str.length)
      // 13    因为'\n'是一个换行符
    

    5.写一个函数,判断一个字符串是回文字符串

      // 代码1:用数组的 reverse() 倒叙法
    var str = 'abcdedcba'
    function isReverse(newStr){
      return newStr === newStr.split('').reverse().join('')
    }
    isReverse(str)  // true
    
    /*split('') 把字符串每个字切割成数组元素
      reverse() 把数组倒叙排列
      join('')把数组连接成字符串
    */
    
    
    /*--------------------------------------------------------*/
      // 倒叙遍历数组的方法
    var str = 'abcdedcba'
    function isReverse(newStr){
      var arr1 = [];
      var arr2 = newStr.split('');
      var i = 0;
      for(var n = 0; n < arr2.length; n++){
        arr1[i] = arr2[arr2.length-1-n];
        i++;
      }
      return arr1.join('') === arr2.join('');  // arr1 和 arr2是数组,要连成字符串比较。
    }
    isReverse(str);  // true
    

    6.写一个函数,统计字符串里出现出现频率最多的字符

    var str = 'hello world yhhhhhhh';
    function fn(str){
      var obj = {};
      for(var i in str){
        if(obj[str[i]]){
          obj[str[i]]++;
        }else{
          obj[str[i]] = 1;
        }
      }    /*把字符串统计成对象*/ 
    
      var count = 0;
      var maxValue;
      for(var key in obj){
        if(obj[key] > count){
          count = obj[key];
          maxValue = key;
        }
      }    /*遍历对象寻找最大的键值和键名*/
    
      return 'maxValue: ' + maxValue + '\n' + 'count: ' + count;
    }
    
    fn(str);
    
    /*
    "maxValue: h
    count: 8"
    */
    

    7.写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串

    function camelize(str){
      var arr = str.split('-');
      var newArr = [];
      for(var i in arr){
        newArr[i] = arr[i].replace(arr[i][0],arr[i][0].toUpperCase())
      }
      newArr.join();
      return newArr.join('');
    }
    
    camelize("my-short-string");   // "MyShortString"
    camelize("background-color");  // "BackgroundColor"
    camelize("list-style-image");  // "ListStyleImage"
    

    8.写一个 ucFirst函数,返回第一个字母为大写的字符串

    function ucFirst(str){
      var newStr = str.replace(str[0], str[0].toUpperCase());
      return newStr;
    }
    
    ucFirst("hunger")  // "Hunger"
    

    9.写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...

    function truncate(str, maxlength){
      if(str.length > maxlength){
        return str.slice(0,maxlength) + "...";
      }else{
        return str;
      }
    }
    
    truncate("hello, this is hunger valley,", 10);  
      // "hello, thi..."
    truncate("hello world", 20);  
      // "hello world"
    

    相关文章

      网友评论

          本文标题:字符串的操控

          本文链接:https://www.haomeiwen.com/subject/tbhyattx.html