Skip to content

Latest commit

 

History

History
85 lines (59 loc) · 2.11 KB

File metadata and controls

85 lines (59 loc) · 2.11 KB
comments difficulty edit_url tags
true
中等
JavaScript

English Version

题目描述

给定一个深层嵌套的对象或数组 obj ,并创建该对象 obj 的副本,将其中的任何 undefined 值替换为 null

当使用 JSON.stringify() 将对象转换为 JSON 字符串时,undefined 值与 null 值的处理方式不同。该函数有助于确保序列化数据不会出现意外错误。

 

示例 1:

输入:obj = {"a": undefined, "b": 3}
输出:{"a": null, "b": 3}
解释:obj.a 的值已从 undefined 更改为 null 。

示例 2:

输入:obj = {"a": undefined, "b": ["a", undefined]}
输出:{"a": null,"b": ["a", null]}
解释:obj.a 和 obj.b[1] 的值已从 undefined 更改为 null 。

 

提示:

  • obj 是一个有效的 JSON 对象或数组
  • 2 <= JSON.stringify(obj).length <= 105

解法

方法一

TypeScript

function undefinedToNull(obj: Record<any, any>): Record<any, any> {
    for (const key in obj) {
        if (typeof obj[key] === 'object') {
            obj[key] = undefinedToNull(obj[key]);
        }
        if (obj[key] === undefined) {
            obj[key] = null;
        }
    }
    return obj;
}

/**
 * undefinedToNull({"a": undefined, "b": 3}) // {"a": null, "b": 3}
 * undefinedToNull([undefined, undefined]) // [null, null]
 */