我需要对数组中每个单词的第一个字母进行carmalize

时间:2016-09-29 13:21:20

标签: javascript

"use strict";
function carmalize(newArr)
{

     for(var i = 1 ; i < newArr.length ; i++){
        newArr[i] = newArr[i].charAt(0).toUpperCase();
    }       
    return newArr[i].join(" ");
}
console.log(carmalize(["brett","john","peter"])); 

我需要对数组中每个单词的第一个字母进行carmalize

4 个答案:

答案 0 :(得分:1)

除了从0运行i循环外,还需要

newArr[i] = newArr[i].substring(0, 1).toUpperCase() + newArr[i].substring(1).toLowerCase();

转换每个元素。目前,您只从每个元素中提取第一个字符,并将其转换为大写;所有后续字符都将被丢弃。

如果您将元素就地修改,则标记参数newArr会产生误导。

答案 1 :(得分:1)

您需要从索引0而不是1的第一个字符开始:

for(var i = 0 

您需要将第一个字母大写,然后将字符串的其余部分追加回数组:

newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);

Join整个数组,而不是数组的特定索引:

return newArr.join(" ");

答案 2 :(得分:0)

检查以下代码:

function carmalize(newArr) {

 for(var i = 0 ; i < newArr.length ; i++){
    newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substring(1);
 }       
 return newArr;
}
console.log(carmalize(["brett","john","peter"])); 

希望它会有所帮助。

答案 3 :(得分:-1)

  

面向对象的方法

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

您可以在字符串中创建一个函数。

"use strict";
function carmalize(newArr)
{
     var newArray = [];
     for ( var i = 0 ; i < newArr.length ; i++ ) {
        newArray.push(newArr[i].capitalize());
    }       
    return newArray.join();
}
console.log( carmalize(["brett","john","peter"]));