字符串与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是什么?
- JSON是一种轻量级的数据交换格式,基于JavaScript的一个子集,采用完全独立于语言的文本格式,便于人理解和编写,也易于机器解析和生成。
- 每个对象是一个无序的“名称/值对”集合,对象以一个“{”(左大括号)开始和一个“}”(右大括号)结束;每个“名称”后跟“:”(冒号),“名称/值对”以“,”(逗号隔开)。 花括号保存对象,方括号保存数组。
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"}