美文网首页
字符串与JSON

字符串与JSON

作者: LINPENGISTHEONE | 来源:发表于2017-03-24 21:32 被阅读0次

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

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

    答:

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

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

    1. 第一种当然是使用,转义字符.
        var str = "你好\nWorld!"
        console.log(str); 
    
    2. 第二种也是使用,转义字符,只不过,这次我们把字符串,多空出一段距离.
        var str = "你好\n\
                World\n\
                !";
        console.log(str);
    
    3. 第三种,我们要使用,数组的join内置方法进行转换.
        var str = ["line1","line2","line3"];
        var obj = str.join("\n");
        console.log(obj); 
    
    4. "+"连接
    var str = 'luoqian'
        +'is'
        +'very'
        +'good'
        +'!'
    

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

    var str = //补全代码
    console.log(str)
    

    答:

    var str = 'hello\\\\饥人谷'
    console.log(str)
    

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

    var str = 'jirengu\nruoyu'
    console.log(str.length)
    
    • 输出13。使用了\n换行,占一个字符,空格不计算在长度内。

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

    function isPalindrome(str){
        newstr = str.split('').reverse('').join('')
        if(newstr === str){
            console.log('这是回文字符串')
        }else{
            console.log('这不是回文字符串')
        }
    }
    
    var str ='abcdcba'
    isPalindrome(str)
    

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

    function getMost(str){
        var obj = {}
        for(var i = 0;i<str.length;i++){
            if(obj[str[i]]){
                ++obj[str[i]]
            }else{
                obj[str[i]] = 1
            }
        }
        var count = 0
        var mostTimes
        for(var key in obj){
            if(obj[key] > count){
                count = obj[key]
                mostTimes = key
            }
        }
        return "出现最多次数字符的是:" + mostTimes + ",一共出现了" + count +"次。"
    }
    
    var str = 'hello world'
    var a = getMost(str)
    console.log(a)
    

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

    camelize("background-color") == 'backgroundColor'
    camelize("list-style-image") == 'listStyleImage'
    
    function camelize(str){
        var arr = str.split('-')
        var newarr = arr[0]
        for(var i = 1; i < arr.length; i++){
            newarr += arr[i].charAt(0).toUpperCase() + arr[i].slice(1,arr[i].length)
        }
        return newarr
    }
    
    console.log(camelize("background-color"))
    console.log(camelize("list-style-image"))
    

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

    ucFirst("hunger") == "Hunger"
    
    function ucFirst(str){
        var a = str.charAt(0).toUpperCase()
        var b = str.substring(1)
        return a + b
    }
    
    console.log(ucFirst('hungry'))
    

    或者:

    
    function ucFirst(str){
            var arr = [];
            arr.push(str[0].toUpperCase());
            for(var i=1;i<str.length;i++){
                arr.push(str[i])
            }
            var str2 = arr.join('');
            return str2
        }
    
    console.log(ucFirst("hunger") )
    

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

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

    10、什么是 json?什么是 json 对象?什么是 json 对象字面量?什么是 JSON内置对象?

    • JSON是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
    • JSON对象是一个值,要么是简单类型的值,要么是复合类型的值,但是只能是一个值。JSON对值的要求:
      复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
      简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
      字符串必须使用双引号表示,不能使用单引号。
      对象的键名必须放在双引号里面。
      数组或对象最后一个成员的后面,不能加逗号。
    • json对象字面量是一种简单的描述以及声明方式
    • JSON内置对象 parse、stringify方法

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

    • JSON.parse()方法 把JSON 格式的字符串转换为对象
    • JSON.stringify()方法 对象转换为 JSON 格式的字符串
    var str = {
        name: "haha",
        age:20
    }
    console.log(JSON.stringify(str))
    console.log(JSON.parse(JSON.stringify(str)))
    

    相关文章

      网友评论

          本文标题:字符串与JSON

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