Skip to the content.

** 今天朋友去面试,有一题是这样的:**

把字符串 "a__cj_ja" 转成 "ACjJa"

** 看了下,思路还算清晰: **

  1. 通过 split()_ 作为标识截断字符串,得到分解后的数组
  2. 遍历所得数组内元素,通过 substring(0,1) 得到元素首字母并链式调用 toUpperCase() 方法使其转大写;通过 substring(1) 得到首字母后的其他字母,并拼接于首字母
  3. 遍历的同时,把各个元素依次拼接就得到了我们想要的结果。(由于不确定初始字符串是否大小写混杂,所以方法最开始执行 str.toLowerCase() 把字符串全部转了小写)
var toUpperStr = (str) => {
var str = str.toLowerCase();
var str2 = "";
var arr = str.split("_"); //["a","","cj","ja"]

for (var i in arr) {
str2 = str2 + (arr[i].substring(0, 1).toUpperCase() + arr[i].substring(1));
}
document.write(str2);
return str2;
};
toUpperStr("a__cj_ja"); //ACjJa