Overview
Implement deepOmit(object, keys) that recursively removes all specified keys from a nested object.
Examples
deepOmit({ a: 1, b: { c: 2, a: 3 }}, ['a']); // { b: { c: 2 }}Solution
Reveal solution
function deepOmit(object, keys) {
if (object === null || typeof object !== 'object') return object;
if (Array.isArray(object)) return object.map(item => deepOmit(item, keys));
const result = {};
const keySet = new Set(keys);
for (const [k, v] of Object.entries(object)) {
if (!keySet.has(k)) result[k] = deepOmit(v, keys);
}
return result;
}deep-omit.js
Deep Omit
mediumcodingJavaScriptObjects
Overview
Implement deepOmit(object, keys) that recursively removes all specified keys from a nested object.
Examples
deepOmit({ a: 1, b: { c: 2, a: 3 }}, ['a']); // { b: { c: 2 }}Solution
Reveal solution
function deepOmit(object, keys) {
if (object === null || typeof object !== 'object') return object;
if (Array.isArray(object)) return object.map(item => deepOmit(item, keys));
const result = {};
const keySet = new Set(keys);
for (const [k, v] of Object.entries(object)) {
if (!keySet.has(k)) result[k] = deepOmit(v, keys);
}
return result;
}NameTopicDifficulty
103 of 103 problems