# camelCase

# Description

转换字符串 string驼峰写法 (opens new window)

# Params

{string} [string='']

# Return

String

# Depend

import upperFirst from './upperFirst.js'
import words from './words.js'
import toString from './toString.js'

upperFirst 源码分析

words 源码分析

toString 源码分析

# Code

const camelCase = (string) => (
  words(toString(string).replace(/['\u2019]/g, '')).reduce((result, word, index) => {
    word = word.toLowerCase()
    return result + (index ? upperFirst(word) : word)
  }, '')
)

# Analyze

  1. /['\u2019]/g
  1. 调用 toString 将传入的值转换为 字符串,并且替换掉 'U+2019
  2. 使用 words 进行词分割,得到分割好的数组
  3. 使用 reduce 进行拼接,最终返回一个字符串
  4. 对于 迭代中的每个 word 都进行了转小写处理
  5. 如果传入的 word 不是第一个,就进行首字母大写的处理(驼峰首单词首字母小写),并且进行拼接返回

# Remark

  1. reduce MDN (opens new window)
  2. toLowerCase (opens new window)

# Example

camelCase('go to bad') // goToBad
camelCase('handle error') // handleError
camelCase('view files') // viewFiles
camelCase('camel case') // camelCase
camelCase(['very', 'sad']) // verySad