需求:我遇到现有的需求就是 oracle和MySQL数据库给我返回的数据字段分别是大写和小写字段,为了好统一维护,把数据的属性值转为小写;
举个栗子:
const obj={NAME:123,AGE:456}
想要的结果:
{name:123,age:456}
处理方式:遍历对象,使用toLowerCase()转换key
for (const key in obj) {
const lowerkey = key.toLowerCase();
obj[lowerkey] = obj[key];
delete objClone[i][key];
}
不过这会有问题,比如数据本身就是小写,那么delete方法就会把所有数据删除,对象就是{}了
所以我们要稍微判断一下:
for (var key in obj) {
const reg = /^[a-z]+$/;
if (!reg.test(key)) {
var lowerkey = key.toLowerCase();
obj[lowerkey] = obj[key];
delete obj[key];
}
}
到此处理就完成了;
多条数据原理一样,代码附上
const list=[
{NAME:123,AGE:456,FEMALE:1},
{NAME:123,AGE:456,FEMALE:1},
{NAME:123,AGE:456,FEMALE:1},
{NAME:123,AGE:456,FEMALE:1}
]
var _obj = JSON.stringify(list);
var objClone = JSON.parse(_obj);
// 处理大小写问题
for (var i = 0; i < objClone.length; i++) {
for (var key in objClone[i]) {
const reg = /^[a-z]+$/;
if (!reg.test(key)) {
var lowerkey = key.toLowerCase();
objClone[i][lowerkey] = objClone[i][key];
delete objClone[i][key];
}
}
}