js 对象key值下划线转为驼峰

2021-10-20  本文已影响0人  前端_酒館

场景:后端返回的数据为下划线分割格式,但前端的规范为驼峰格式,实现一种数据格式转换的方法,将数据的key按如下形式转换,要求:

a.炫耀处理多层嵌套的情况
b.特定名词需要全部大写,特定名词包括:url, id

后端返回数据格式

let data = {
 user_name: 'name1',
 user_id: 1000,
 age: 10,
 detail: {
   user_avatar_url: 'xxx',
   object_one: {
     a_num: 1,
     str: 'str1'
   },
   array_one: [
     [
       {
         a_num: 111,
         b_num: 222
       }
     ],
     [
       {
         c_obj: {
           c_num: 333,
           str: 'str111'
         }
       }
     ]
   ]
 }
};

实现代码

function hump(param){
   Object.keys(param).map((key) => {
     let item = param[key];
     if (item instanceof Object || item instanceof Array) {
       hump(item);
     }
     if (hump_(key) !== key) {
       param[hump_(key)] = param[key];
       delete (param[key]);
     }
   });
   return param;
 }
 function hump_(key){
   let keyArr = key.split('_');
   for (let i = 0; i < keyArr.length; i++) {
     if (keyArr.includes('url') && keyArr.includes('id')) {
       keyArr[i] = keyArr[i].toUpperCase();
     } else {
       if (i !== 0) {
         keyArr[i] = keyArr[i][0].toUpperCase() + keyArr[i].substr(1);
       }
     }
   }
   return keyArr.join('');
 }
 console.log(hump(data));

输出效果

输出效果

如果此文对你有用请动动你的小手点个赞!谢谢!!!

上一篇下一篇

猜你喜欢

热点阅读