1. 使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
//todo...
var dt;
var dd = [];
var display;
for(var key in data){
if(typeof data[key] === 'object'){
for(var x in data[key]){
dd.push("<dd>"+data[key][x]+"</dd>");
}
} else {
dt ="<dt>"+data[key]+"</dt>"
}
}
display = "<dl class=\"product\">"
+dt
+dd[0]
+dd[1]
+dd[2]
+"</dl>";
return display;
};
var result = getTplStr(prod); //result为下面的字符串
<dl class="product">
<dt>女装</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春装</dd>
</dl>
2. 写出两种以上声明多行字符串的方法
- 在每行末尾使用反斜杠
var longString = "Long \
long \
long \
string";
longString
// "Long long long string"
- 使用'+'字符串连接运算符连接多行字符串
var longString = 'Long '
+ 'long '
+ 'long '
+ 'string';
3. 以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)//13
\n是一个字符
4. 写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var a = "abcdcba";
var b = "abcdccc";
function detectPal(str){
return (str.split("").reverse().join("") == str)
//返回 true是回文,false不是回文
}
console.log(detectPal(a));//true
console.log(detectPal(b));//false
5. 写一个函数,统计字符串里出现出现频率最多的字符(如果有多个都需要展示)
function detectMax(str){
var sta = {};
var arr = str.split("");
//拆分字符串,并分别统计个数
for(var x in arr){
if(!sta.hasOwnProperty(arr[x])){
sta[arr[x]] = 1;
}else{
sta[arr[x]] += 1;
}
}
//找出个数最多的字符
var num=0;
var charMax = [];
for (var key in sta){
if(sta[key]>num){
num = sta[key];
charMax = []
charMax[0] = key;
}else if(sta[key] == num){
charMax.push(key);
}
}
var result = {"charMax":charMax,"number":num};
return result;
}
console.log(detectMax("hello world ooooo"));
6. 写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如 (***)
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(str){
var strArr = str.split("-");
// console.log(strArr[0]);
for (var i=0;i<strArr.length; i++){
if(i===0) continue;
var letter = strArr[i].split("");
letter[0] = letter[0].toUpperCase();
strArr[i] = letter.join('');
// console.log(strArr[i])
}
return strArr.join('');
}