确保字符串的每个单词首字母都大写,其余部分小写。
function f(str){
var arr = str.toLowerCase().split(" "); //转小写,分割成字符串数组
for(var i=0; i<arr.length; i++){
arr[i] = arr[i].charAt(0).toUpperCase()+arr[i].slice(1); //重新组合字符串元素
}
return arr.join(" "); //转成字符串
}
console.log(f("I'm a title Case.")); //输出结果:I'm A Title Case.
//解题思路:1、字符串转化成小写;2、分割成字符串数组;3、新组合字符串元素=首字母转大写+其余小写。
// var string="baaa1234";
// console.log(string[0]);
// console.log(string.length);
// console.log(string.charAt(0));
//string[0]在IE6-8中不支持,而string.charAt(0)可以,另外当index超出string长度,string[index]会返回undefined,string.charAt(index)则返回空字符串,所以建议使用string.charAt(index)
//Array.prototype.copy = function () { };
//for(var i in arr){arr[i] = arr[i].charAt(0).toUpperCase()+arr[i].slice(1);}
// 最好不要用forin循环数组,因为当数组的原型添加了新属性时,key就不仅仅是只包含数组的index值,还包含了新添加的属性,如下:
// Array.prototype.copy = function () { };
// var arr = [1, 2];
// for (var index in arr)
// {
// alert(index);
// }
// 我们看到会弹出三个对话框,分别是:0、1、copy,也就是说除了项的数值索引 0、1,还多了一个 copy,而这个 copy 就是因为 Array.prototype.copy 扩展得到的。
// 所以说不要把 for (var index in items) 当作是 for (var i = 0; i < items.length; i++) 的一种简写,二者具有不同的意义。
//数组的substring(1)和slice(1)方法几乎是一样的,区别在于参数为负数时,substring会识别为0,而slice会识别成倒数的,所以slice更强大
// substr(1,arr[i].length-1);截取index1开始的count个字符形成的字符串,这里是直接截取到最后,所以还是方法slice更简洁
转载:https://blog.csdn.net/weixin_42585386/article/details/102487228