Inspired by this issue on the lodash repo, asking for deep functionality for omit
.
Note that there are plans to remove omit
entirely in lodash v5... and props to this comment (and the one it quotes) in response to that 😆.
Inspired by this issue on the lodash repo, asking for deep functionality for omit
.
Note that there are plans to remove omit
entirely in lodash v5... and props to this comment (and the one it quotes) in response to that 😆.
function omitDeep(value, key) { | |
if (Array.isArray(value)) { | |
return value.map(i => omitDeep(i, key)) | |
} | |
else if (typeof value === 'object' && value !== null) { | |
return Object.keys(value) | |
.reduce( | |
(newObject, k) => { | |
if (k == key) return newObject | |
return Object.assign( | |
{ [k]: omitDeep(value[k], key) }, | |
newObject | |
) | |
}, | |
{} | |
) | |
} | |
return value | |
} |
Thanks for catching that, I've updated the gist.
Important:
because of
typeof null === 'object'
line 8 should state: