首页 > 解决方案 > JavaScript 中字符串的第一个元素大写

问题描述

错误显示“ AssertionError: expected ' NEVER GIVE UP' to deeply equal ' NEVER GIVE UP ' ”,我无法弄清楚为什么字符串开头的空白会被忽略。这是我的代码:

function letterCapitalize(str) {
  if (str === '') {
    return ''
  }
  let string = '' //array to string
  let word = str.split(' ')
  for (let i = 0; i < word.length; i++) {
    if (word[i] !== '') {
      string = string + word[i][0].toUpperCase() + word[i].slice(1, word[i].length) + ' '
    } else if (word[i] === '') {
      string = ' ' + string
    }
  }
  return string.slice(0, string.length - 1)
}

控制台日志示例包括:

let output1 = letterCapitalize('hello world');
console.log(output1); // "Hello World"
let output2 = letterCapitalize('javascript  is sexy ');
console.log(output2); // "Javascript  Is Sexy "

标签: javascriptstringuppercasesplice

解决方案


您的测试似乎最后需要一个空格,如果您真的想将字符串大写,请尝试这个,或者分享您的测试用例代码以便我看看。

const capitalize = str => {
  if (!str) return "";
  return str
    .split(" ")
    .map(el => el[0].toUpperCase() + el.slice(1))
    .join(" ");
}

推荐阅读