如何从数据库中的对象中删除空值?

新手上路,请多包涵

简单 我有一个看起来像这样的对象,它直接从我的 chrome 浏览器中的存储过程返回。我怎样才能删除 nulljavascript/angular 2 中的那些?

目的

原文由 CodeMan03 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 525
2 个回答

首先,根据您提供的图像,您没有数组。这是一个 object 每个人都认为你有一个 array 由于你的标题被误导了。所以你不能马上使用 filter 功能。您可以执行类似这样的操作来过滤 object

 var object = {
  C1: "123456",
  C2: "1234",
  C3: null,
  C4: null,
  C5: null,
  C6: "4567"
}

var MAP = {
  C1: "Product",
  C2: "Product Description",
  C3: "Date",
  C4: "",
  C5: "",
  C6: "Date"
}

for (var key in object) {
  if (object[key] === null) {
    delete object[key];
  } else {
    object[MAP[key]] = object[key];
    delete object[key];
  }
}

console.log(object);

更新

我更新了您的答案以满足额外的需求。请记住, MAP 对象应该与 keyvalue 一对一映射。

原文由 Thusitha 发布,翻译遵循 CC BY-SA 3.0 许可协议

null 似乎是唯一的虚假值,所以你可以做

arr = arr.filter(Boolean);

如果它只是一个带键的对象,你可以这样做

 var obj = {c1 : 's', c2 : 's', c3 : null, c4 : null};

Object.entries(obj).forEach( o => (o[1] === null ? delete obj[o[0]] : 0));

console.log(obj);

原文由 adeneo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题