2705.精简对象
链接:2705.精简对象
难度:Medium
标签:
简介:现给定一个对象或数组 obj,返回一个 精简对象 。精简对象 与原始对象相同,只是将包含 假 值的键移除。该操作适用于对象及其嵌套对象。数组被视为索引作为键的对象。当 Boolean(value) 返回 false 时,值被视为 假 值。
题解 1 - typescript
- 编辑时间:2023-06-05
- 执行用时:156ms
- 内存消耗:69MB
- 编程语言:typescript
- 解法介绍:对于每个是对象的value,进行dfs。
type Obj = Record<any, any>;
function compactObject(obj: Obj): Obj {
const res: any = Array.isArray(obj) ? [] : {};
for (const [k, v] of Object.entries(obj)) {
if (Boolean(v)) {
const newv = typeof v === 'object' ? compactObject(v) : v;
if (Array.isArray(obj)) res.push(newv);
else res[k] = newv;
}
}
return res;
};