字符串的操控

2017-04-11  本文已影响27人  辉夜乀

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

var prod = {
    name: '女装',
    styles: ['短款', '冬季', '春装']
};

function getTplStr(data){
  var str = '';
  str += '<dl class="product">\n';
  str += '\t<dt>' + data.name + '</dt>\n';
  for (var key in data.styles){
    str += '\t<dd>' + data.styles[key] + '</dd>\n'; 
  }
  str += '</dl>';
  return str;
};

var result = getTplStr(prod);
console.log(result);


// 输出
<dl class="product">
    <dt>女装</dt>
    <dd>短款</dd>
    <dd>冬季</dd>
    <dd>春装</dd>
</dl>

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

   //反斜杠‘\’换行法
var str = 'aaaa\
bbbb\
cccc\
dddd';
  // 反斜杠‘\’后面不能有空格
console.log(str);
  // aaaabbbbccccdddd


/*--------------------------------------------------------*/
  // 字符串‘+’的拼接法
var str = 'aaaa' + 
          'bbbb' + 
          'cccc' + 
          'dddd' ;
console.log(str);
  // aaaabbbbccccdddd


/*--------------------------------------------------------*/
  // 函数的注释法
function fn(){/*
aaaa
bbbb
cccc
dddd
*/}
var str = fn.toString().split('\n').slice(1,length-1).join('');
  /*toString() 把函数 fn 转化成字符串
    split('\n') 把字符串以换行符‘\n’为切割点切割成数组
    slice(1,-1) 把数组掐头去尾截取出来
    join('') 把数组以空字符串''为连接点连接成字符串
  */ 
console.log(str)
  // aaaabbbbccccdddd

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

var str = 'hello\\\\jirengu';
console.log(str);
  // hello\\jirengu

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

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

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

  // 代码1:用数组的 reverse() 倒叙法
var str = 'abcdedcba'
function isReverse(newStr){
  return newStr === newStr.split('').reverse().join('')
}
isReverse(str)  // true

/*split('') 把字符串每个字切割成数组元素
  reverse() 把数组倒叙排列
  join('')把数组连接成字符串
*/


/*--------------------------------------------------------*/
  // 倒叙遍历数组的方法
var str = 'abcdedcba'
function isReverse(newStr){
  var arr1 = [];
  var arr2 = newStr.split('');
  var i = 0;
  for(var n = 0; n < arr2.length; n++){
    arr1[i] = arr2[arr2.length-1-n];
    i++;
  }
  return arr1.join('') === arr2.join('');  // arr1 和 arr2是数组,要连成字符串比较。
}
isReverse(str);  // true

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

var str = 'hello world yhhhhhhh';
function fn(str){
  var obj = {};
  for(var i in str){
    if(obj[str[i]]){
      obj[str[i]]++;
    }else{
      obj[str[i]] = 1;
    }
  }    /*把字符串统计成对象*/ 

  var count = 0;
  var maxValue;
  for(var key in obj){
    if(obj[key] > count){
      count = obj[key];
      maxValue = key;
    }
  }    /*遍历对象寻找最大的键值和键名*/

  return 'maxValue: ' + maxValue + '\n' + 'count: ' + count;
}

fn(str);

/*
"maxValue: h
count: 8"
*/

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

function camelize(str){
  var arr = str.split('-');
  var newArr = [];
  for(var i in arr){
    newArr[i] = arr[i].replace(arr[i][0],arr[i][0].toUpperCase())
  }
  newArr.join();
  return newArr.join('');
}

camelize("my-short-string");   // "MyShortString"
camelize("background-color");  // "BackgroundColor"
camelize("list-style-image");  // "ListStyleImage"

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

function ucFirst(str){
  var newStr = str.replace(str[0], str[0].toUpperCase());
  return newStr;
}

ucFirst("hunger")  // "Hunger"

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

function truncate(str, maxlength){
  if(str.length > maxlength){
    return str.slice(0,maxlength) + "...";
  }else{
    return str;
  }
}

truncate("hello, this is hunger valley,", 10);  
  // "hello, thi..."
truncate("hello world", 20);  
  // "hello world"
上一篇下一篇

猜你喜欢

热点阅读