字符串轉換為駝峰格式——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

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM