object.js
1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 格式化ajax数据
const formatDeepObj = (origin, key) => {
for (const k in origin[key]) {
if (typeof origin[key][k] === 'object' && !Array.isArray(origin[key][k]) && origin[key][k] !== null) {
for (const id in origin[key][k]) {
const c = `${key}[${k}].${id}`;
origin[c] = origin[key][k][id];
}
}
}
return origin;
};
/**
* 模拟formdata
* 这种方式只能适用于简单地嵌套结构,不要超过一层!不要超过一层!不要超过一层!多了后端自己想想办法
* @param obj
* @returns {*}
*/
export function formatAjaxData(obj) {
for (const key in obj) {
if (obj.hasOwnProperty(key) && Array.isArray(obj[key])) {
for (const k in obj[key]) {
if (typeof obj[key][k] === 'object' && !Array.isArray(obj[key][k])) {
obj = formatDeepObj(obj, key);
} else if (obj[key].hasOwnProperty(k)) {
obj[`${key}[${k}]`] = obj[key][k];
}
}
delete obj[key];
} else if (obj.hasOwnProperty(key) && typeof obj[key] === 'object') {
for (const k in obj[key]) {
if (obj[key].hasOwnProperty(k)) {
obj[`${key}.${k}`] = obj[key][k];
}
}
delete obj[key];
}
}
return obj;
}