const flatten = (objectOrArray, prefix = '') => { const nestElement = (prev, value, key) => (value && typeof value === 'object' ? { ...prev, ...flatten(value, `${prefix}${key}.`) } : { ...prev, ...{ [`${prefix}${key}`]: value } }); return Array.isArray(objectOrArray) ? objectOrArray.reduce(nestElement, {}) : Object.keys(objectOrArray).reduce( (prev, element) => nestElement(prev, objectOrArray[element], element), {}, ); };
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter