在JS的深层对象/数组中保留除"未定义"之外的所有值,可以使用递归遍历的方式进行操作。以下是实现的步骤:
以下是具体的实现代码示例:
function retainDefinedValues(obj) {
if (Array.isArray(obj)) {
return obj.map(item => retainDefinedValues(item));
} else if (typeof obj === "object" && obj !== null) {
const result = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = retainDefinedValues(obj[key]);
}
}
return result;
} else if (typeof obj !== "undefined") {
return obj;
}
}
// 示例输入
const input = {
a: 1,
b: undefined,
c: {
d: 2,
e: undefined,
f: [3, undefined, 4],
},
g: [5, undefined, 6],
h: undefined,
};
// 调用函数进行处理
const output = retainDefinedValues(input);
// 输出结果
console.log(output);
该代码将会输出以下结果:
{
a: 1,
c: {
d: 2,
f: [3, 4],
},
g: [5, 6],
}
这样就保留了原始对象中除了"未定义"之外的所有值。
对于相关的编程语言,前端开发可以使用HTML、CSS和JavaScript,后端开发可以使用Node.js、Python、Java等,而存储方面可以使用云数据库等。具体推荐的腾讯云相关产品和产品介绍链接地址,可以参考腾讯云官方文档或咨询腾讯云客服人员获取最新的信息。
领取专属 10元无门槛券
手把手带您无忧上云