字符串与JSON

2017-07-03  本文已影响0人  leocz

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

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

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

var str = "abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdabcd"
如何优雅的显示

//方式1
var str = "abcdeabcdeabcdeancdeabc\
deabcdeabcdeancdeabcdeabcd\
eabcdeancdeabcdeabcdabcd"

//方式2
var str = "abcdeabcdeabcdeanc"
+"deabcdeabcdeabcdeancdeab"
+ "cdeabcdeabcdeancdeabcdeabcdabcd"

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

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

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

var str = 'jirengu\nruoyu'
console.log(str.length)  // 13   \n为一个字符

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

 function strTest(str){
  var  myStr = str.split("").reverse().join("");
  if( myStr === str ){
    console.log(str + "是一个回文字符串");
  }
  else{
    console.log(str + "不是一个回文字符串");
  }  
}
var str1 = "abcdcba";
var str2 = "abcdabcd";
strTest(str1);
strTest(str2);

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

function mostLetter(str){
  var dist = {};
  for(var i = 0; i < str.length; i++){
    if( dist[str[i]] ){
      dist[str[i]]++;
    }
    else{
      dist[str[i]] = 1;
    }
  var count = 0;
  var mostValue; 
  for(var key in dist){
      if( dist[key] > count ){
        mostValue = key;
        count = dist[key];
      }
    }
  }
console.log(mostValue,count);
}
var str1 = "abcabc a";
var str2 = "abcd a b c d a b"
mostLetter(str1);    // a 3
mostLetter(str2);    //   6   /*空格出现了6次*/

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

function cameLize(str){
  var arr = str.split("-");
  for(var i=1;i < arr.length; i++){
    arr[i] = arr[i].substring(0,1).toUpperCase() + arr[i].substr(1);
  }
var strNew = arr.join("");
console.log(strNew) ;
}
var str = "my-short-sting";
cameLize(str);

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

function ucFirst(str){
  if(typeof str === "string" && str.length > 0){
     return str.substring(0,1).toUpperCase() + str.substr(1);
  }else{
    return str + "不是一个字符串"
  }
}
ucFirst(hunger);  // Hunger
unFirst(312);     //  312不是一个字符串

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){
    return str.substr(0,maxlength) + "..."
  }else{
    return str
  }
}
truncate("hello world", 20);
truncate("hello, this is hunger valley,", 10)

10.什么是json数据格式?json格式数据如何保存对象?window.json是什么?

var json1 = {"name": "Byron", "age": "24"}
var json2 = [
    {"name": "Byron", "age": "24"}, 
    {"name": "Byron2", "age": "25"}
]

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

JSON.stringify(): 用于将JSON对象转换为JSON格式的字符串

var json1 = {"name": "Byron", "age": "24"}
JSON.stringify(json1);  //"{"name":"Byron","age":"24"}"

JSON.parse(): 用于将JSON格式的字符串转换为JSON对象

var json2 = '{"name":"Byron","age":"24"}';
JSON.parse(json2); //  {name: "Byron", age: "24"}
上一篇下一篇

猜你喜欢

热点阅读