Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大写:JavaScript中字符串的第一个元素_Javascript_String_Uppercase_Splice - Fatal编程技术网

大写:JavaScript中字符串的第一个元素

大写:JavaScript中字符串的第一个元素,javascript,string,uppercase,splice,Javascript,String,Uppercase,Splice,错误显示“AssertionError:预期的‘永不放弃’与‘永不放弃’完全相等” 我不明白为什么字符串开头的空格会被忽略。这是我的密码: function letterCapitalize(str) { if (str === '') { return '' } let string = '' //array to string let word = str.split(' ') for (let i = 0; i < word.length; i++) {

错误显示“AssertionError:预期的‘永不放弃’与‘永不放弃’完全相等” 我不明白为什么字符串开头的空格会被忽略。这是我的密码:

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)
}

您的测试似乎需要在末尾留一个空格,如果您真的想大写字符串,请尝试此方法,或者共享您的测试用例代码,以便我可以查看

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

你的测试似乎需要一个开头和结尾的空格。我不确定你指的是哪一行;在
else if
中,您将在(整个)字符串的开头追加一个空格。您应该将其添加到字符串的末尾。(就像您在
if
中所做的那样)请向我们展示测试用例的代码。您的测试似乎需要的不是大写。@Ivar我担心测试结果仍然是“断言错误:预期的‘永不放弃’与‘永不放弃’完全相等”。问题是“从不”后面的双空格不出现。可能使用数组?1重写。它以字符串类型返回。2.当空字符串为3时返回空字符串。当给出4时返回“”。当给出5时返回“你能做到”。返回' 从未  给予 向上的 ' 什么时候 从未  给予 向上的 ' 答案是6。当给出“You Have A Idea”时,返回“You Have A Idea”。3,5是显示错误的。错误代码3为AssertionError:预期“”等于“”,5为5。AssertionError:期望“永不放弃”与“永不放弃”完全相等。啊,好了,现在我明白了。你不应该删除任何空格。No 5显示错误,因为您的函数从末尾删除了一个空间。我想我可以通过添加“”来保留结尾的空间,就像我在if上所做的那样。然而,我不明白为什么我的代码中的双空格after永远不会消失,以及如何保存它们。
const capitalize = str => {
  if (!str) return "";
  return str
    .split(" ")
    .map(el => el[0].toUpperCase() + el.slice(1))
    .join(" ");
}