JSON对象、字符串

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

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

函数如下:

var prod = {
    name: '女装',
    styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
    var result = '
'+'
'+ '
'+data.name+'
'+'
'+ '
'+data.styles[0]+'
'+'
'+ '
'+data.styles[1]+'
'+'
'+ '
'+data.styles[2]+'
'; return result; } var result = getTplStr(prod); //result为下面的字符串 console.log(result);

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

(1)直接声明

var lines = "hello world\nThis is javascript\nwelcome to jirengu";
console.log(result);

这种声明方法采用\n转义符进行回车,执行的结果是:

JSON对象、字符串_第1张图片
屏幕快照 2017-01-12 下午2.19.40.png

缺点是声明方式不直观,对于大量的文本定义很难用

(2)多行分开声明

var lines = "hello world\n\
            This is javascript\n\
            welcome to jirengu";

console.log(lines);

执行结果是:

JSON对象、字符串_第2张图片
屏幕快照 2017-01-12 下午2.27.00.png

line2,line3前面有很多空白,这是因为声明时就是这样子的,这种声明方法还有一个缺点,就是每行的末尾都需要增加回车转义符\n,另外如果当文本中存在引号"时,还要进行转义,特别是有很多引号“时,使用起来就很不方便了。
(3)使用数组定义,join连接

var lines = [hello world", "This is javascript",  "welcome to jirengu"].join("\n");  
console.log(lines);  

运行结果:

JSON对象、字符串_第3张图片
屏幕快照 2017-01-12 下午3.55.07.png

这种方法比较取巧,可以分开定义每行,回车转义符\n只需要写一次,算是比较方便,但是还是存在不直观的问题,还有也是每行中当存在引号”时还是需要进行转义。

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

var str = 'jirengu\nruoyu'
console.log(str.length)//13

因为'\n'为转义字符,算一个字符

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

代码如下:

function isPalindrome(input){
    var srcstr = input.toString();
    var len = srcstr.length;
    var flag = true;
    for(var i = 0;i < (len-1)/2;i++){
        if(srcstr.charAt(i)!=srcstr.charAt(len-i-1)){
            flag = false;
            break;
        }
    }
    console.log(srcstr,'is',flag ? '是':'不是',"回文数");
    return flag;
    
}
isPalindrome('abcdcba');
isPalindrome('abcdcbb');
isPalindrome(1234)
JSON对象、字符串_第4张图片
屏幕快照 2017-01-12 下午4.35.39.png

5.写一个函数,统计字符串里出现出现频率最多的字符(如果有多个都需要展示)

你可能感兴趣的:(JSON对象、字符串)