0

我一直在努力提高我用 Javascript 编程的能力。我担心的问题之一是我的代码有效,但我不知道它是否有效。我觉得我一直在解决问题,而不是正确地解决问题。例如:

function titleCase(str) {
  var words = str.split(' ');
  for(var i = 0; i<words.length;i++){
    words[i] = words[i].toLowerCase();
    letters = words[i].split('');
    letters[0] = letters[0].toUpperCase();
    word = letters.join('');
    words[i] = word;
  }
  str = words.toString().replace(/,/g," ");
  console.log(str);
  return str;
}

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

我觉得必须有更好的方法来做事。有没有人对 1) 如何学习更有效的做事方式 2) 你将如何清理这段代码有任何建议?

谢谢一堆

4

1 回答 1

3

在您注意到它是一个问题之前,我不会担心程序速度方面的效率。

在简洁的代码和可读性方面,高阶函数通常比 for 循环更好:

function titleCase (string) {
  return string.split(' ').map(function(word) {
    return word[0].toUpperCase() + word.slice(1)
  }).join(' ');
}

或者在 ES6 中更快:

const titleCase = (str) => 
  str.split(' ')
  .map(word => word[0].toUpperCase() + word.slice(1))
  .join(' ')
于 2016-06-13T22:31:01.227 回答