formdata对象格式化(转换formdata 对象)
// obj 是要 添加的value 值 from 是FormData对象 name 是key 值
function toFromData(obj, form, name) {
const formdata = form || new FormData();
if (typeof obj !== 'object' || obj instanceof File) {
formdata.append(name, obj);
return formdata;
}
const keyName = name ? name + '.' : '';
for (const key in obj) {
//判断是自己的属性 且不为空
if (key != null && obj.hasOwnProperty(key) && obj[key] != null && obj[key] !== '') {
const value = obj[key];
if (value instanceof Array) {//如果是数组
value.map((item, index) =>{
toFromData(item, formdata, keyName + key + '[' + index + ']');
})
}else{
toFromData(value, formdata, keyName + key);
}
}
}
return formdata;
}
方法的调用:
let data = {
name: "value1",
id: "0",
age: "18",
sex: "1",
likes: "水果",
filesList: [{file1: '文件对象'}],
}
let formData = toFromData(data);
for (var [key, value] of formData.entries()) {
console.log(key + ': ' + value)
}
打印结果: