1、对适配的方法进行了封装
方法1:
(function () {
/**
* 前后端数据不同的封装适配,所有数据通用
* @param end_data 后端传过来的数据
* @param relationObj 数据不同,需要适配的键名组成的对象,格式:{前端需要的键名:后端传过来的键名},例如:{"stuNo": "id","Name": "name",}
* @returns {*[]} 返回适配后的新数组
*/
function dataAdapter(end_data, relationObj) {
let newArr = [];
end_data.forEach((item) => {//循环后端传过来的数组
let newObj = new Object();//创建一个新对象
newObj = {...item};//将后端传过来的数组中的元素(对象)深拷贝给新创建的对象newObj
for (let key in relationObj) {//遍历前端用户传过来的数组
delete newObj[relationObj[key]];//删除新创建的对象中的属性(后端和前端不同需要适配的)
//[key]是用户传过来对象中的键名,relationObj[key]是键值
newObj[key] = item[relationObj[key]];//将后端传过来的数组中元素(对象)中的键值赋值给新对象
}
newArr.push(newObj);
})
return newArr;
}
window.dataAdapter = dataAdapter
})();
方法2:使用map
(function () {
/**
* 前后端数据不同的封装适配,所有数据通用
* @param end_data 后端传过来的数据
* @param relationObj 数据不同,需要适配的键名组成的对象,格式:{前端需要的键名:后端传过来的键名},例如:{"stuNo": "id","Name": "name",}
* @returns {*[]} 返回适配后的新数组
*/
function dataAdapter(end_data, relationObj) {
return end_data.map((item) => {
let newObj = new Object();//创建一个新对象
for (let key in relationObj) {//遍历前端用户传过来的数组
delete newObj[relationObj[key]];//删除新创建的对象中的属性(后端和前端不同需要适配的)
//[key]是用户传过来对象中的键名,relationObj[key]是键值
newObj[key] = item[relationObj[key]];//将后端传过来的数组中元素(对象)中的键值赋值给新对象
}
return newObj
})
}
window.dataAdapter = dataAdapter
})();
2、调用封装好的方法
将后端传过来的数据以及需要适配的数据作为参数传过去
function dataConversion() {
//后端传过来的数据
let student_end = [
{id: 1, name: '张三', age: 23, sex: 0, address: '成都市'},
{id: 2, name: '李四', age: 25, sex: 1, address: '宜宾'},
{id: 3, name: '王五', age: 26, sex: 1, address: '遂宁市'},
{id: 4, name: '赵六', age: 27, sex: 0, address: '南充'}
];
//调用封装好的方法
let result = dataAdapter(student_end, {
"stuNo": "id",
"Name": "name",
"stu_age": "age",
// "sex": "sex",
// "address": "address"
})
console.log(result);
}
dataConversion();