Problem 45
Deep Freeze Recursion Challenge
Given an object or array, freeze it and every nested object or array inside it so that no properties can be modified. Return the same input after freezing. Primitive values should be returned as-is.
Function Signature
deepFreeze(input)
Parameters
input— any value. If it is an object or array, freeze it and all nested objects/arrays. Primitives are returned unchanged.
Output
Return the same input reference after deeply freezing it.
Constraints
- The function must use recursion.
- The function should accept exactly one argument.
Examples
deepFreeze({a: {b: {c: 1}}, d: 2})
// All nested objects are now frozen
deepFreeze([1, [2, {three: 3}], {four: [4]}])
// All nested arrays and objects are now frozen
deepFreeze(1) → 1
deepFreeze('hi') → 'hi'
deepFreeze(null) → null