如何在javascript中将蛇形哈希转换为camelcase

时间:2015-10-10 04:09:38

标签: javascript ruby-on-rails formatting interop

我很习惯使用连接到rails后端的javascript,大部分时间其中一个必须让其他格式化规则接受,例如ruby的snake_case和javascript的camelCase。

有两种方法可以在这两种格式之间替换字符串,但最好以更直接的方式考虑深入替换哈希中的所有键。

2 个答案:

答案 0 :(得分:2)

我在Cofeescript中给出了它为我设计的方法,如果你需要它的javascript版本,你可以在Coffescript site转换它。

class Converter

  convertString: (string)->
    #Switch to the needed format
    string.replace(/(\_[a-z])/g, ($1)-> $1.toUpperCase().replace('_',''))

  convertObject: (obj)->
    newObj = {}
    for k,v of obj
      val = if typeof v is "object" and not Array.isArray(v) then @camelizeObject(v) else v
      key = @camelizeString(k)
      newObj[key] = val
    newObj

答案 1 :(得分:0)

如果你不反对使用外部lib,lodash有一个函数:https://lodash.com/docs#snakeCase它还有一堆有用的助手来操作Javascript中的数组/集合/字符串。

例如,使用mapKeys,您可以轻松地将对象的键“转换”为snake_case:

abcd=