猿问

标题案例一个句子错误与算法

我必须给案例一个句子。我的算法应该可以工作,但没有。我的连接功能有问题。我似乎无法将数组加入字符串。数据类型有问题吗?我试图改变它,但它没有用,我不明白为什么。


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");


杨魅力
浏览 145回答 2
2回答

慕哥9229398

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

长风秋雁

尝试使用正则表达式function titleCase(str) {&nbsp; return str.toLowerCase().replace(/[\w']+/g,m=>m.replace(/./,c=>c.toUpperCase()))}&nbsp;console.log( titleCase("I'm a little tea pot") );
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答