如果接收到的值为“”,我们想从对象中删除该特定属性

时间:2018-07-20 11:33:47

标签: javascript

对于给定的对象,如果属性的输入“值”为“”,我们想从该对象中删除该属性。

Ex

{
 "Speed": "59 MBPS",
 "latitude": "90.2",
 "longitude": ""
}

根据示例,由于经度的值为“”,因此应从对象中删除该值。 请提出一个JavaScript代码来实现这一目标。

1 个答案:

答案 0 :(得分:0)

您可以使用Object.keys()从对象获取密钥。然后,您可以filter属性!=="",然后将其简化为Object

类似这样的东西:-

let o = {
  "Speed": "59 MBPS",
  "latitude": "90.2",
  "longitude": "",
  "prop": ""
};

let res = Object.keys(o).filter(k => o[k] !== "").reduce((acc, cv) => {
  acc[cv] = o[cv];
  return acc;
}, {});
console.log(res);

或仅使用delete如下:

let o = { "Speed": "59 MBPS", "latitude": "90.2", "longitude": "" };

for (let key in o) {
    if (o.hasOwnProperty(key) && o[key] == "") {
        delete o[key];
    }
}

console.log(o);