首页 > 解决方案 > 使用 for 循环将每个单词的第一个字母大写(不能处理间距)

问题描述

我有一个函数应该将每个单词的第一个字母大写。我有一个简洁的解决方案.map; 但是,为了练习,我正在尝试使用 for 循环来解决它。这是我所取得的成就:

我创建了一个 for 循环,但它似乎不起作用。

function UpperWithCycle(str) {
  str = str.split(' ');
  let result = '';

  for (let i = 0; i < str.length; i++) {
    result += str[i].substring(0, 1).toUpperCase() + str[i].substring(1).toLowerCase();
  }
  return result;
}

console.log(UpperWithCycle('hello everyone my name is Andrew, how are you doing?'))

所以,我知道我需要在join(' ')这里添加某个地方,但我似乎无法弄清楚在哪里添加它以获得单词之间的空格。在我尝试添加它的任何地方,我都会得到“加入不是函数”
那么我在这里错过了什么,伙计们?

标签: javascriptfunction

解决方案


您可以在除最后一个单词之外的每个单词之后添加空格:

function UpperWithCycle(str) {

  str = str.split(' ');
  let result = '';

  for (let i = 0; i < str.length; i++) {
    result += str[i].substring(0, 1).toUpperCase() + str[i].substring(1).toLowerCase();
    result += i < str.length - 1 ? ' ' : '';
  }
  return result;
}

console.log(UpperWithCycle('hello everyone my name is Andrew, how are you doing?'))


推荐阅读