如果名称和值对js中的值为空,则从Array中删除Object

Wae*_*eez 2 javascript arrays object

[{name: "mode", value: "1"},{name: "group", value: ""},{name: "from_date", value: ""},{name: "to_date", value: "2018-10-16"},{name: "action", value: "ac_filter_transactions"}
Run Code Online (Sandbox Code Playgroud)

这就是我的数组的样子.我想从数组中删除名称和值对,如果它value是空的.

我试过这个解决方案:但是这没用

formData.map((i) => {
  (i.value == "") ? delete i: "";
});
Run Code Online (Sandbox Code Playgroud)

我知道这是一个简单的问题,但我找不到任何相关的例子来解决这个问题.我发现的所有示例和解决方案都是针对这种类型的对象

let obj = {"firstname": "XYZ", "lastname": "ABC"}
Run Code Online (Sandbox Code Playgroud)

两个对象有什么区别?

zfr*_*sch 8

您可以Array.prototype.filter根据是否value存在的布尔值来使用和返回条目,因为空字符串是假的.

a.filter(o => (o.value));
Run Code Online (Sandbox Code Playgroud)

let a = [{name: "mode", value: "1"},{name: "group", value: ""},{name: "from_date", value: ""},{name: "to_date", value: "2018-10-16"},{name: "action", value: "ac_filter_transactions"}];


let result = a.filter(o => (o.value));

console.log(result);
Run Code Online (Sandbox Code Playgroud)

注意:如果您的任何value属性也是假的,它们也不会被拾取.要解决这个问题,您可以使用以下方法重写它:(o.value !== "")

let a = [{name: "mode", value: "1"},{name: "group", value: ""},{name: "from_date", value: ""},{name: "to_date", value: "2018-10-16"},{name: "action", value: "ac_filter_transactions"}];


let result = a.filter(o => (o.value !== ""));

console.log(result);
Run Code Online (Sandbox Code Playgroud)