字符串与json

作者: 66dong66 | 来源:发表于2017-03-24 09:47 被阅读0次

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

var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function get(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 demo = get(prod);
console.log(demo);
//
<dl clall="product">
    <dt>女装</dt>
    <dd>短款</dd>
    <dd>冬季</dd>
    <dd>春装</dd>
</dl>

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 = 'hello\\\\高治东';
console.log(str)

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

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

var str = "\abc";
console.info(str.length); // 3
结果是3,说明'\a'是一个字符。
如果你想在字符串里面表示'\',那么你就得转义它,给它也加一个反斜杠'\\'。
var str = "\\abc";
console.info(str.length); // 4

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

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

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

var str = "hello world nihao  nihao nihao haha ";
var dict = {};
for(var i = 0;i < str.length; i++) {
        if(dict[str[i]]) {
            ++dict[str[i]];
        }else{
            dict[str[i]] = 1;
        }
    }

var count = 0;
var maxValue;
for(var key in dict) {
    if(dict[key] > count) {
    count = key;
    maxValue = dict[key];
    }
}

console.log("出现最多的字符是" + count,"出现了" + maxValue + "次");

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

如: camelize("background-color") == 'backgroundColor'
    camelize("list-style-image") == 'listStyleImage'

function camelize(str) {
    var arr = str.split("-");
    var tempStr = arr[0];
    for (var i = 1; i < arr.length; i++) {
        tempStr += arr[i].charAt(0).toUpperCase() + arr[i].slice(1, arr[i].length);
    }

    return tempStr;
}

console.log(camelize("background-color")); //== 'backgroundColor'
console.log(camelize("list-style-image")); // == 'listStyleImage'

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

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

console.log(ucFirst(str1))

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

//substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

var str1 = "hello, this is hunger valley";
function truncate(str,maxlenght) {
    if(str.length > maxlenght){
        var sub1 = str.substr(0,maxlenght) + "...";
        console.log(1,sub1);
    }
    return sub1
}
 console.log(truncate(str1,10));

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

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

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

JSON.parse()方法 把JSON 格式的字符串转换为对象
JSON.stringify()方法 对象转换为 JSON 格式的字符串

相关文章

网友评论

    本文标题:字符串与json

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