字符串转换为驼峰格式——js练习

题目要求

完善函数 convertToCamelCase 的功能。函数 convertToCamelCase 会转换传入的字符串参数 string 为驼峰格式,并返回转换后的字符串。具体要求如下:

  • 参数 string 是以中划线(-)连接单词的字符串,需将第二个起的非空单词首字母转为大写,如 -webkit-border-radius 转换后的结果为 webkitBorderRadius。
  • 返回转换后的字符串
function convertToCamelCase(str) {
  // 去除中划线分隔符获取单词数组
  var strArr = str.split('-');
  // 如果第一个为空,则去掉
  if(strArr[0] === '') {
    strArr.shift();
  } 
  // 遍历第二个单词到最后一个单词,并转换单词首字母为答谢
  for(var i = 1, len = strArr.length; i < len; i++){
    // 如果不为空,则转成大写
    if(strArr[i] !== '') {
       strArr[i] = strArr[i][0].toUpperCase() + strArr[i].substring(1);
    }   
  }
  return strArr.join('');
}

注意:检查第一项是否为空

思路:

  • 去除参数字符串的中划线连接符,在这里使用到字符串分割方法 split
  • 获取去除中划线连接符的单词数组,并保存在一个新的变量 strArr
  • 需要判断该数组第一项是否为空,如果为空则去掉。如 '-a-b-c'.split('-'); // 返回的是 ['', a, b, c] 第一项便为空字符串
  • 使用循环语句,设置起始坐标 i = 1 即只从第二个单词开始来进行处理
  • 将每个单词的首字母调用字符串大写方法 toUpperCase
  • 将更改的首字母字符和单词后面的字符再次拼接起来,成为一个新的单词字符串
  • 循环后将单词数组拼接成一个完整的字符串,使用了数组的方法 join

 

用到的知识点如下:

  • 分割字符串 split

   split() 方法可以把字符串分割为字符串数组。如下所示:

    "2:3:4:5".split(":")    // 将返回 ["2", "3", "4", "5"]
    "|a|b|c".split("|")    // 将返回 ["", "a", "b", "c"]


更多: http://www.w3school.com.cn/jsref/jsref_split.asp
  • 截取字符串 substring

    substring() 方法用于提取字符串中介于两个指定下标之间的字符。如下所示:

     var str = 'Hello World!';
     console.log(str.substring(3)); // 将返回 lo world!

下图为w3school的定义&解释



更多:http://www.w3school.com.cn/jsref/jsref_substring.asp

  • 字符串转换大写 toUpperCase() / toLocaleUpperCase()

    toLocaleUpperCase() 方法用于把字符串转换为大写。如下所示:

     var str = 'Hello World!';
     console.log(str.toLocaleUpperCase()); // 将返回 HELLO WORLD!

更多:http://www.w3school.com.cn/jsref/jsref_toLocaleUpperCase.asp
http://www.w3school.com.cn/jsref/jsref_toUpperCase.asp

  • 拼接字符串 join()

        定义和用法

      join() 方法用于把数组中的所有元素放入一个字符串。

      元素是通过指定的分隔符进行分隔的。

 
更多:http://www.w3school.com.cn/jsref/jsref_join.asp


  • 更多方法:http://www.w3school.com.cn/jsref/jsref_obj_string.asp


posted @ 2018-01-12 22:46  chivasknight  阅读(4927)  评论(0编辑  收藏  举报