** 今天朋友去面试,有一题是这样的:**
把字符串
"a__cj_ja"
转成"ACjJa"
** 看了下,思路还算清晰: **
- 通过
split()
以_
作为标识截断字符串,得到分解后的数组- 遍历所得数组内元素,通过
substring(0,1)
得到元素首字母并链式调用toUpperCase()
方法使其转大写;通过substring(1)
得到首字母后的其他字母,并拼接于首字母- 遍历的同时,把各个元素依次拼接就得到了我们想要的结果。(由于不确定初始字符串是否大小写混杂,所以方法最开始执行
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