首页 > 解决方案 > 如何将字符串中每个单词的首字母大写?

问题描述

以下函数应将句子中每个单词的首字母大写(str)!不幸的是,它不起作用,我找不到解决方案!

function titleCase(str) {
  let arr = str.toLowerCase().split(" ");
  for (let i = 0; i < arr.length; i++) {
    arr[i].charAt(0).toUpperCase();
  }
  return arr.join(" ");
}

console.log(titleCase("I'm a little tea pot"));

标签: javascriptarraysstring

解决方案


您需要分配大写字母的结果,并将其连接到单词的其余部分:

function titleCase(str) {
  let arr = str.toLowerCase().split(" ");
  for (let i = 0; i < arr.length; i++) {
    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
  }
  return arr.join(" ");
}

console.log(titleCase("I'm a little tea pot"));

它也更容易使用map

function titleCase(str) {
  return str.split(" ").map(s => s.charAt(0).toUpperCase() + s.substring(1)).join(" ");
}

console.log(titleCase("I'm a little tea pot"));


推荐阅读