2775. 将 undefined 转为 null
2025年6月25日小于 1 分钟
2775. 将 undefined 转为 null
type JSONValue =
| null
| boolean
| number
| string
| JSONValue[]
| { [key: string]: JSONValue }
type Value =
| undefined
| null
| boolean
| number
| string
| Value[]
| { [key: string]: Value }
type Obj1 = Record<string, Value> | Array<Value>
type Obj2 = Record<string, JSONValue> | Array<JSONValue>
// function undefinedToNull<T>(input: T): T {
// if (Array.isArray(input)) {
// return input.map((item) =>
// item === undefined ? null : undefinedToNull(item)
// ) as any
// }
// if (input !== null && typeof input === 'object') {
// const result: Record<string, any> = {}
// for (const [key, value] of Object.entries(input)) {
// result[key] = value === undefined ? null : undefinedToNull(value)
// }
// return result as T
// }
// return input
// }
function undefinedToNull(obj: Record<any, any>): Record<any, any> {
if (obj === undefined) return null
if (typeof obj !== 'object' || typeof obj === null) return obj
for (const key in obj) {
obj[key] = undefinedToNull(obj[key])
}
return obj
}
/**
* undefinedToNull({"a": undefined, "b": 3}) // {"a": null, "b": 3}
* undefinedToNull([undefined, undefined]) // [null, null]
*/