CS Fundamentals Trainer · JavaScript · Security
Predict the output: a recursive merge that copies a parsed JSON body.
function merge(target, source) {
for (const key in source) {
const value = source[key];
if (value && typeof value === 'object') {
if (!target[key]) target[key] = {};
merge(target[key], value);
} else {
target[key] = value;
}
}
return target;
}
const settings = merge({}, JSON.parse('{"__proto__": {"isAdmin": true}}'));
const user = {};
console.log(settings.isAdmin, user.isAdmin);
console.log(Object.keys(settings).length, Object.hasOwn(user, 'isAdmin'));
Difficulty: medium