strapi-plugin-content-manager
Version:
A powerful UI to easily manage your data.
46 lines (33 loc) • 952 B
JavaScript
const removeKeyInObject = (obj, keyToRemove) => {
if (!obj) {
return obj;
}
return Object.keys(obj).reduce((acc, current) => {
const value = acc[current];
if (value === null) {
return acc;
}
if (Array.isArray(value)) {
if (Array.isArray(acc)) {
acc[current] = removeKeyInObject(value, keyToRemove);
return acc;
}
return { ...acc, [current]: value.map(obj => removeKeyInObject(obj, keyToRemove)) };
}
if (typeof value === 'object') {
if (value._isAMomentObject === true) {
return { ...acc, [current]: value };
}
if (Array.isArray(acc)) {
acc[current] = removeKeyInObject(value, keyToRemove);
return acc;
}
return { ...acc, [current]: removeKeyInObject(value, keyToRemove) };
}
if (current === keyToRemove) {
delete acc[current];
}
return acc;
}, obj);
};
export default removeKeyInObject;