如何在JavaScript中根据值移除对象键及数组指定元素?
处理对象与数组的清理方案
需求说明
移除对象中值为"N/A"、"-"或空字符串的键;若数组中存在这些值,则移除对应元素;最后将修改后的对象转为字符串并通过console.log输出。
示例输入
let data= {"name":{"first":"Add","middle":"N/A","last":"khan","Country":"N/A"},"age":12};
实现代码
// 定义需要移除的值集合 const removeValues = new Set(["N/A", "-", ""]); // 递归清理函数,处理对象和数组 function cleanData(item) { if (Array.isArray(item)) { // 过滤数组中需移除的值 return item.filter(val => !removeValues.has(val)); } else if (typeof item === 'object' && item !== null) { // 遍历对象键值对,保留符合条件的键 const cleanedObj = {}; for (const [key, val] of Object.entries(item)) { const cleanedVal = cleanData(val); // 跳过需移除的值,同时避免保留空对象/数组(可根据需求调整) if (!removeValues.has(val) && !(typeof cleanedVal === 'object' && Object.keys(cleanedVal).length === 0)) { cleanedObj[key] = cleanedVal; } } return cleanedObj; } // 基本类型直接返回 return item; } // 执行清理 const cleanedData = cleanData(data); // 转为字符串并输出 console.log(JSON.stringify(cleanedData));
输出结果
{"name":{"first":"Add","last":"khan"},"age":12}
内容的提问来源于stack exchange,提问作者Addi Khan
相关产品推荐
相关产品推荐

