Flatten javascript objects into a single-depth object with array flattening

PHOTO EMBED

Mon Jan 31 2022 15:10:30 GMT+0000 (Coordinated Universal Time)

Saved by @knightastron

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),
      {},
    );
};
content_copyCOPY

https://gist.github.com/penguinboy/762197