"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
答案 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"]));