Skip to content

Instantly share code, notes, and snippets.

@michalklim
Last active September 19, 2018 12:11
Show Gist options
  • Save michalklim/08be31e04deeea1960f1a461acac7a28 to your computer and use it in GitHub Desktop.
Save michalklim/08be31e04deeea1960f1a461acac7a28 to your computer and use it in GitHub Desktop.
Compact form data
export const compactFormData = obj => {
const objectFilteredKeys = Object.keys(obj).filter(k => !isNil(obj[k]) && !(isString(obj[k]) && isEmpty(obj[k])))
const assignData = (newObj, k) =>
isObject(obj[k]) ? Object.assign(newObj, { [k]: compactFormData(obj[k]) }) : Object.assign(newObj, { [k]: obj[k] })
if (isArray(obj)) {
return objectFilteredKeys.reduce(assignData, [])
} else if (isObject(obj)) {
return objectFilteredKeys.reduce(assignData, {})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment