我必须给案例一个句子。我的算法应该可以工作,但没有。我的连接功能有问题。我似乎无法将数组加入字符串。数据类型有问题吗?我试图改变它,但它没有用,我不明白为什么。function titleCase(str) { let newStr = str.toLowerCase().split(" "); let all; for (let i = 0; i < newStr.length; i++) { let capitalize = newStr[i][0].toUpperCase(); // console.log(capitalize); let rest = newStr[i].slice(1); // console.log(rest); all = capitalize.concat(rest); all.join(" "); console.log(all); } return all;// return all.join(" ");} titleCase("I'm a little tea pot");
2 回答
慕哥9229398
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") );
添加回答
举报
0/150
提交
取消