Title Case a Sentence

Basic Algorithm Scripting: Title Case a Sentence | freeCodeCamp.org

我的,没有完成要求

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function titleCase(str) {
  let newStrArr = []
  for (let i = 0; i < str.split(' ').length; i++) {
    newStrArr.push(
      str.split(' ')[i][0].toUpperCase() +
        str.split(' ')[i].slice(1).toLowerCase(),
    )
  }
  return newStrArr.join(' ')
}

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

加了 .toLowerCase() 可以了。

这样写有些繁琐。

for…in

1
2
3
4
5
6
7
8
9
function titleCase(str) {
  const newTitle = str.split(' ')
  const updatedTitle = []
  for (let st in newTitle) {
    updatedTitle[st] =
      newTitle[st][0].toUpperCase() + newTitle[st].slice(1).toLowerCase()
  }
  return updatedTitle.join(' ')
}

map()

1
2
3
4
5
6
7
8
9
  function titleCase(str) {
    return str
      .toLowerCase()
      .split(' ')
      .map((val) => val.replace(val.charAt(0), val.charAt(0).toUpperCase()))
      .join(' ')
  }

  titleCase("I'm a little tea pot")

正则表达式

1
2
3
function titleCase(str) {
  return str.toLowerCase().replace(/(^|\s)\S/g, (L) => L.toUpperCase())
}

Layout of comment panels