IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> js 对象key值下划线转为驼峰 -> 正文阅读

[JavaScript知识库]js 对象key值下划线转为驼峰

作者:recommend-item-box type_blog clearfix

场景:后端返回的数据为下划线分割格式,但前端的规范为驼峰格式,实现一种数据格式转换的方法,将数据的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));

输出效果
输出效果

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

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 11:54:34  更:2021-10-17 11:55:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 20:38:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码