前端-给定一个字符串str,如何实现每个单词首字母都大写,其余部分小写。

确保字符串的每个单词首字母都大写,其余部分小写。

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更简洁

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值