題目要求
完善函數 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