我因遇到有关字符串原型方法的问题而伤了自己。

我想创建一个方法来驼峰任何字符串。

这是我当前的代码:

String.prototype.camelCase=function(){
    let wordsArray = this.split(" ")
    wordsArray.forEach((word)=>{
      word[0] == word[0].toUpperCase()
    })
}


当我console.log(word [0] .toUpperCase())时,我得到每个单词的首字母大写,但是当我尝试将转换应用于我的“单词”时,出现错误“无法读取属性'toUpperCase'未定义“

wtf?

最佳答案

解决字符串不变性的一种方法是,仅返回具有所需内容的新字符串,如下所示:



String.prototype.camelCase = function() {
    return this
        .split(" ")
        .map(w => {
          if (!w) return w
          return w[0].toUpperCase()+w.substring(1)
        })
        .join(' ')
}

console.log('hello world'.camelCase())

关于javascript - 明确定义后,为什么会得到未定义的“toUpperCase”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55519126/

10-12 13:24