js(面试题),将对象下面属性下划线格式的命名方式改成驼峰式写法

var const_obj={
     
    first_name:"chen",
    obj:{
     
        last_name:"xi"
    },
    ni_hao:"yaya"
}
const changeTuofeng=(value,char="_")=>{
     
    var arr=value.split("");
    var index=arr.indexOf(char);
    var newValue=value,flag=false;
    if(index!=-1){
     
        arr.splice(index, 2, arr[index + 1].toUpperCase());
        newValue= arr.join('');
        flag=true;
    }
    return {
     
        flag,
        newValue
    };
}
const replaceUnderLine=(obj,char="_")=>{
     
    var arr=Object.keys(obj);
    arr.forEach((item,key)=>{
     
        var before=Object.prototype.toString.call(obj[item])==="[object Object]"?replaceUnderLine(obj[item],char):obj[item];
        var key=changeTuofeng(item,char);
        obj[key.newValue]=before;
        if(key.flag){
     
            delete obj[item];
        }
    })
    return obj;
}
const str=replaceUnderLine(const_obj);

console.log(str);

js(面试题),将对象下面属性下划线格式的命名方式改成驼峰式写法_第1张图片

你可能感兴趣的:(javascript,js)