You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:03:35