function createFormData(data, previousKey, formData = new FormData()) { if (isPlainObject(data)) { Object.keys(data).forEach(key => { const value = data[key]; let newKey = key; if (isPlainObject(value)) { return createFormData(value, key, formData); } if (previousKey) { newKey = `${previousKey}[${key}]`; } if (isArray(value)) { value.forEach((item, index) => { if (isPlainObject(item)) { createFormData(item, `${newKey}[${index}]`, formData); } else { formData.append(`${newKey}[${index}]`, item); } }); } else { formData.append(newKey, value); } }); } else if (previousKey) { formData.append(previousKey, data); } return formData; }