题目要求
完善函数 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