概述
##接口字段大写和下滑线小写互相转换
前言:
目前这个系统是两个后端写的,由于返回的字段不统一 ,需要转换下,他们改的话也麻烦,我改的话也很麻烦,那就我麻烦吧 ,刚开始写了了 下滑线小写转大写的 ,后来他返回的字段又变了,但我页面写好了,牵一发而动全身,想让后端改 ,但他很忙,我晚上就想想怎么搞吧 , 也许我的方法很笨,但目前能用。----------有点罗嗦了 话不多说进入正题
一:下滑线转大写
后端返回的数据是这样的
[
{
plan_year: '2019',
plan_money: 200,
},
{
plan_year: '2021',
plan_money: 200,
},
]
转换成这样的
[
{
planYear: '2019',
planMoney: 200,
},
{
planYear: '2021',
planMoney: 200,
},
]
function _low_to_up(arr1) {
let arr = arr1.concat([]);
return arr.map((v) => {
let obj = {};
for (let i in v) {
obj[re(i)] = v[i];
}
return obj;
});
//把下滑线替换成大写
function re(str) {
if (str.indexOf("_") != -1) {
let index = str.indexOf("_");
let sml = str.substr(index + 1, 1);
let reg = "/_" + sml + "/g";
let str1 = str.replace(eval(reg), sml.toLocaleUpperCase());
if (str1.indexOf("_") != -1) {
str1 = re(str1)
}
return str1;
} else {
return str;
}
}
}
//0: {planYear: "2019", planMoney: 200}
//1: {planYear: "2021", planMoney: 200}
二:大写转下滑线
[
{
schEduleS: '你好',
planMoney: 200,
},
{
scheDule: '你好1',
planMoney: 2002,
}
]
//转换成:
[
{
sch_edule_s: '你好',
plan_money: 200,
},
{
sche_dule: '你好1',
plan_money: 2002,
}
]
之前写了一个 但只能替换第一个大写字母
下面这个是我从新写的 写的感觉不好 凑合着看吧
function up_to_low(arr1) {
let arr = arr1.concat([]);
let finally1 = [];
for (let i = 0; i < arr.length; i++) {
let obj = arr[i]
let newobj = {}
for (let key in obj) {
let name = repeat(key)
newobj[name] = obj[key]
}
finally1.push(newobj)
}
return finally1
//检测多个大写字母
function repeat(key) {
let str = ''
str = fil(key, check(key))
if (check(str)) {
str = fil(str, check(str))
}
return str
}
//替换字母
function fil(b, s) {
let reg = '/' + s + '/g'
return b.replace(eval(reg), '_' + s.toLowerCase())
}
//返回大写字母
function check(key) {
let key1 = key.toLowerCase()
// console.log(key, key1);
let arr2 = key.split('') //old
let arr3 = key1.split('') //new
//找到大写字母
let str;
for (let i = 0; i < arr2.length; i++) {
if (arr2[i] != arr3[i]) {
return arr2[i]
// let reg = '/' + arr2[i] + "/g";
// str = key.replace(eval(reg), `_${arr3[i]}`)
// console.log(str)
}
}
}
}
// 0: {sch_edule_s: "你好", plan_money: 200}
//1: {sche_dule: "你好1", plan_money: 2002}
总结:有哪位大神有简单的方法啊,我这太笨了,有的话请留言,谢谢!
最后
以上就是沉静奇异果为你收集整理的接口字段大写和下滑线小写互相转换的全部内容,希望文章能够帮你解决接口字段大写和下滑线小写互相转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复