美文网首页
字符串与JSON练习

字符串与JSON练习

作者: 头大如牛 | 来源:发表于2017-12-17 01:22 被阅读0次

    1、使用数组拼接出如下字符串 ,其中styles数组里的个数不定

    var prod = {
        name: '女装',
        styles: ['短款', '冬季', '春装']
    };
    function getTpl(data){
    //todo...
        var result = '';
        if(JSON.stringify(data) != '{}') {
            result += '<dl class="product">';
            result += '<dt> + data['name']';
            for(var i=0; i<data['styles'].length; i++) {
                result += '<dd>' + data['style'][i] + '</dd>'
            }
            result += '</dl>';
        }
        return result;
    };
    var result = getTplStr(prod);  //result为下面的字符串
    
    <dl class="product"><dt>女装</dt><dd>短款</dd<dd>冬季</dd><dd>春装</dd></dl>
    

    2、写出两种以上声明多行字符串的方法
    例如:

    var str1 = 'abcdfdffdffdf\
    dfdfffffdfdfdf\
    fdfdfdf';
    
    var str2 = 'abcdfdfdf' +
               'dfdfdf' + 
               'dfdfdfddff';
               
    var str3 = (function() {/*
    adfdfdfdffd
    dfdfdfdfdfdf
    dfdfdfdf
    */}).toString().split('\n').slice(1, -1).join('');
    

    这段字符串很长,如何多行优雅的显示

    var str1 = ''
    

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

    var str = "hello\\\\饥人谷";//补全代码
    console.log(str)
    

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

    var str = 'jirengu\nruoyu'
    console.log(str.length)
    // 输出13 因为\n被解释为换行符,为一个长度
    

    5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是

    function isReverse(str) {
        if(str===str.split('').reverse().join('')) {
            console.log('这是一个回文');
        }else {
            console.log('这不是一个回文');
        }
    }
    

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

    function getMaxFrequencyChar(str){
      var maxChar = '';
      var maxStr = '';
      var maxFrequency = 0;
      var strObj = {};
      
      for(var i=0; i<str.length; i++){//构建strObj
        if(str[i] in strObj){
          strObj[str[i]] ++;
        }else {
          strObj[str[i]] = 1;
        }
      }
      
      for(var key in strObj){
        if(strObj[key] > maxFrequency){
          maxFrequency = strObj[key];
          maxChar = key;
          maxStr = '';
        }else if(strObj[key] == maxFrequency){
          maxStr += key;
        }
      }
      
      maxStr += maxChar;
      return maxStr;
    }
    
    var a = getMaxFrequencyChar('helloword');
    }
    

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

    
    function camelize(str){
      var wordArray = str.split('-');
      var capitalStr = '';
      
      for(var i=0; i<wordArray.length; i++){
        var word = wordArray[i];
        var capitalWord = '';
        
        if(i > 0){
          for(var j=0; j<word.length; j++){
            if(j === 0){
              capitalWord += word[j].toUpperCase();
            }else{
              capitalWord += word[j];
            }
          }      
        }
        else {
          capitalWord = word;
        }
        
        capitalStr += capitalWord;
      }
      
      return capitalStr;
      
    }
    
    camelize("background-color") == 'backgroundColor'
    camelize("list-style-image") == 'listStyleImage'
    

    8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)

    function ucFirst(str) {
      var firstStr = '';
      
      for(var i=0; i<str.length; i++){
        if(i === 0){
          firstStr += str[i].toUpperCase();
        }else {
          firstStr += str[i];
        }
      }
      
      return firstStr; 
    }
    
    ucFirst("hunger") == "Hunger"
    

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

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

    10、什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?

    • JSON格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford提出,目的是取代繁琐笨重的XML格式。
    • JSON键值对是用来保存JS对象的一种方式,和JS对象的写法很相似,键/值对组合中的键名写在前面并用双引号""包裹,使用冒号:分隔,然后紧接着值。
    • window.JSON是一种JSON对象,JSON对象主要有两个静态函数:
      JSON.parse方法用于将JSON字符串转化成对象。
      JSON.stringify方法用于将一个值转为字符串。该字符串符合 JSON 格式,并且可以被JSON.parse方法还原。

    11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?

    • JSON.parse('{"hello": "world"}');//json格式的字符串转换为js对象, 必须是符合json格式

    • JSON.stringify({hello: "world"}); //把js对象转换为json格式的字符串

    相关文章

      网友评论

          本文标题:字符串与JSON练习

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