递归处理js对象中带下划线的key换成驼峰的key

125 阅读1分钟

js封装方法:递归处理js对象数据中的全部带下划线的key名转换为驼峰的key名

let hump = function(obj){//递归判断把对象中的全部下划线key变成字符字符串key
    for(let key in obj){
        if(obj[key] instanceof Object && !(obj[key] instanceof Array)){
            obj[key] = hump(obj[key])
        }
        if(obj[key] instanceof Array){
            obj[key] = obj[key].map(item =>{
                if(item instanceof Object){
                    item = hump(item)
                }
                return item
            })
        }
        let str = ''
        if(key.indexOf('_') > -1){
            let arr = key.split('')
            let sel_index = null
            arr.forEach((item,index) =>{
                if(item == '_'){
                    sel_index = index
                }else{
                    if(sel_index && sel_index + 1 == index){
                        item = item.toUpperCase()
                    }
                    str += item
                }

            })
            obj[str] = obj[key]
            delete obj[key]
        }

    }
    return obj
}
export default hump