对象属性转换为驼峰

366 阅读1分钟
function resplaceLodashToCamleCase (s) {
  return  s.replace(/_(\w)/g, (s, s1) => { return s1.toUpperCase()})
}

let obj = {
  a_aa_aa: 1,
  b_bb_bb: {c_cc_cc: 2},
  c_cc_cc: [{c_cc_cc: 2},{c_cc_cc: 2}]
}

function replacePropery (obj) {
  if (typeof obj === 'object' && obj !== null) {
    let cp = Array.isArray(obj) ? [] : {}
    for (let key in obj) {
      cp[resplaceLodashToCamleCase(key)] = replacePropery(obj[key])
    }
    return cp
  } else {
    return obj
  }
}

console.log(replacePropery (obj))

// {
//  aAaAa: 1,
//  bBbBb: { cCcCc: 2 },
//  cCcCc: [ { cCcCc: 2 }, { cCcCc: 2 } ]
// }