如何从属性等于空的数组中删除对象 - Lodash

Jam*_*mes -1 javascript lodash

我有一个像这样的对象数组:

var a = [

  {
    "ClientSideAction": 1,
    "CompletedDate": "not null",
    "ItemDescription": "Step 1"
  },
  {
    "ClientSideAction": 1,
    "CompletedDate": null,
    "ItemDescription": "step 2"
  },
  {
    "ClientSideAction": 1,
    "CompletedDate": "not null",
    "ItemDescription": "Step 3"
  },
  {
    "ClientSideAction": 1,
    "CompletedDate": null,
    "ItemDescription": "step 4"
  }

];
Run Code Online (Sandbox Code Playgroud)

我该如何删除元素CompletedDate == null

我试过了._dropWhile,但是一旦函数返回falsey就停止了,这不是我想要的.我想遍历所有对象并删除那些符合该条件的对象.现在,我知道我可以使用常规的js,但是如果可能的话我想使用lodash.我是Lodash的初学者,我正努力变得更好.

这是我用过的.dropWhile:

var a2 = _.dropWhile(a, function(o) { return o.CompletedDate == null; });
Run Code Online (Sandbox Code Playgroud)

Sov*_*iut 6

您可以使用本机Array.filter()过滤项目.

var a = [
  {
    "ClientSideAction": 1,
    "CompletedDate": "not null",
    "ItemDescription": "Step 1"
  },
  {
    "ClientSideAction": 1,
    "CompletedDate": null,
    "ItemDescription": "step 4"
  }
];

var b = a.filter(function(item) {
  return item.CompletedDate !== null;
});

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

使用箭头函数可以在现代浏览器或nodejs中进一步简化:

var b = filter((x => x.CompletedDate !== null);
Run Code Online (Sandbox Code Playgroud)