2 回答

TA贡献1877条经验 获得超6个赞
问题是您正在处理字符串,函数中唯一的数组是newStr.
字符串没有join函数。
您可以做的是分配all给一个数组并将您生成的字符串推送到其中。下面是一个例子:
function titleCase(str) {
let newStr = str.toLowerCase().split(" ");
const all = [];
for (let i = 0; i < newStr.length; i++) {
let capitalize = newStr[i][0].toUpperCase();
let rest = newStr[i].slice(1);
all.push(capitalize.concat(rest));
}
return all.join(" ");
}
const result = titleCase("I'm a little tea pot");
console.log(result);

TA贡献1757条经验 获得超7个赞
尝试使用正则表达式
function titleCase(str) {
return str.toLowerCase().replace(/[\w']+/g,m=>m.replace(/./,c=>c.toUpperCase()))
}
console.log( titleCase("I'm a little tea pot") );
添加回答
举报