查找大写字母

Finding uppercase letters

提问人:Ion Creciun 提问时间:11/10/2023 更新时间:11/10/2023 访问量:48

问:

我正在尝试找到大写字母并在它们前面加一个空格以将字符串剪切成单词,但取而代之的是获取所有大写字母并插入空格,它在找到第一个字母后每隔插入相同数量的字母后插入空格。就像是“camelCasingTest”一样,结果将是“camel Casin gTest”

function camelCase(string) {
    let splittedString = string.split('')

    for(let i = 0; i < splittedString.length; i++){
       if(string.charAt(i) === str.charAt(i).toUpperCase()){
        splittedString.splice(i, 0, ' ')
        // i - where the change should be
        // 0 - how many elements should be removed
        // " " - what element should be inserted
        i++
        // The i++ statement ensures that the loop skips the inserted space and continues to the next character.
       }
    }
    return splittedString.join('')
}

我尝试使用正则表达式并且它起作用了,但这个问题困扰着我,有什么建议吗?

JavaScript 数组算法 驼峰式写

评论


答:

1赞 canon 11/10/2023 #1

您的比较应该使用新数组而不是源字符串。否则,在将项目注入数组时会出现索引漂移。

function camelCase(str) {
  const chars = str.split('');
  for (let i = 0; i < chars.length; i++) {
    // check the array rather than the original string
    if (chars[i] === chars[i].toUpperCase()) {
      chars.splice(i, 0, ' ');
      i++;
    }
  }
  return chars.join('');
}
console.log(camelCase('camelCasingTest'));