HuangHongRui / Notebook

:pencil2: Yeah.. This's My NoteBook...:closed_book:
0 stars 0 forks source link

字符串 & JSON #4

Open HuangHongRui opened 7 years ago

HuangHongRui commented 7 years ago

珍惜......一切...

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

`var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
//todo...
};
var result = getTpl(prod);  //result为下面的字符串
女装
短款
冬季
春装
`
//Method-One
`var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
//思路:先把盒子造好,然后再从上面的对象里面拿数据装进去
var dress = [];
dress.push("
"); dress.push("
" + data.name + "
"); for(var key in data.styles){ dress.push("
" + data.styles[key] + "
") } dress.push("
"); //此时得到一个数组..需要reflect如何把他转化为下面的形式。 var a = dress.join(""); return a; }; var result = getTpl(prod); //result为下面的字符串 `
//Method-Two
`function getTpl(data){
var something = "
" for(var key in data){ if(typeof data[key] === "string") { something += ("
"+data[key]+"
") }else{ for(var i=0, x=data[key].length; i" + data[key][i] + ""); } } } something += "
"; console.log(something) return something };`
`//Method-Three
function getTpl(data) {
var dress = "
"+"\n"; dress += ("
" + data.name + "
"); dress += ("
" + data.styles[0] + "
"); dress += ("
" + data.styles[1] + "
"); dress += ("
" + data.styles[2] + "
"); dress += "
"; return dress;`

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

`var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'`
//这个紧挨,注意\n
`str = "abcdeabcdeabcdeancde\nabcdeabcdeabcdeancde\nabcdeabcdeabcdeancde\nabcdeabcdeabcdeancde"`
`Method-One
str = "abcdeabcdeabcdeancde"
+ "abcdeabcdeabcdeancde"
+ "abcdeabcdeabcdeancde"
+ "abcdeabcdeabcdeancde"`
`//这种可以在前加空格
str = "abcdeabcdeabcdeancde\n\
abcdeabcdeabcdeancde\n\
abcdeabcdeabcdeancde\n\
abcdeabcdeabcdeancde"`
`(function() {/*
abcdeabcdeabcdeancde
abcdeabcdeabcdeancde
abcdeabcdeabcdeancde
abcdeabcdeabcdeancde
*/}).toString().split('\n').slice(1,-1).join();`

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

`var str = //补全代码
console.log(str)`
`hello\\\\\\\\饥人谷`

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

`var str = 'jirengu\nruoyu'
console.log(str.length)`
13个,因转义字符虽然使用了\n换行但是空格并没有算在长度里面,`\n`只占据了一个占位符.

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

`var a = "abcdcba";
var c = "abcdcbb"
function judge(arg) {
return arg == arg.split("").reverse().join("");
}
judge(a);//s..
judge(c);//d..`

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

`  var dostring = "hahahaha, hello this is my world."
function numeration(arg) {
var i, listf=[];
for(i = 0; i < arg.length; i++) {
if(listf[arg[i]]) {
++listf[arg[i]];
}else{
listf[arg[i]] = 1
}
}
var counts; //声明个计算
var maxValue = 0;   //声明个最大值
for(var key in listf){  //遍历
if(listf[key] > maxValue) { //遍历到的属性的值大于counts
counts = key;   //就属性赋给counts
maxValue = listf[key];  //再把值赋给他
}
}
console.log(counts,maxValue);
}
numeration(dostring); `

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

`function camelize(arg) {
var momentvar = arg.split("-");
var result = "";
for(var i=0; i

.写一个函数,返回第一个字母为大写的字符 (***)

`ucFirst("hunger") == "Hunger"`
`function capitalize(arg) {
return arg.charAt(0).toUpperCase() + arg.slice(1)
}`

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

`truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"`
`  function abbr(str, maxlength) {
var a = str.slice(0, maxlength)+"...";
console.log(a);
}`

.JSON问题

  • 什么是 JSON?
  • 什么是 JSON格式数据?
  • JSON字面量
  • SON格式数据如何表示对象?
  • window.JSON 是什么?
  • 如何把JSON 格式的字符串转换为 JS 对象?
  • 如何把 JS对象转换为 JSON 格式的字符串?
`var str = {name:"jirengu",age:2}
JSON.stringify(str)  //转为字符串
JSON.parse(JSON.stringify(str)).  //转为对象`