字符串与JSON

2017-03-24  本文已影响0人  LINPENGISTHEONE

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)

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内置对象?

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

var str = {
    name: "haha",
    age:20
}
console.log(JSON.stringify(str))
console.log(JSON.parse(JSON.stringify(str)))
上一篇下一篇

猜你喜欢

热点阅读