从数组中删除空对象

Jan*_*ide 3 javascript arrays jquery javascript-objects underscore.js

我有一个填充了对象的 JavaScript 数组,我想删除每个没有数据的对象。它可能看起来像这样:

var myArray = [ {id: "28b", text:"Phill"},
                {id: "12c", text:"Peter"},
                {id: "43f", text:"Ashley"},
                {id: "43f", text:"Ashley"},
                {id: "", text:""},
                {id: "9a", text:"James"},
                {id: "", text:""},
                {id: "28b", text:"Phill"}
              ];
Run Code Online (Sandbox Code Playgroud)

我已经使用_.uniqfrom underscore.js 从我的数组中删除所有重复项,这很好用。虽然它们是唯一的,但当我动态填充数据时,总是会留下一个空的对象(因为有空的数据集)。我已经尝试过_.without这里提到的功能:Remove empty elements from an array in Javascript但它不起作用。这是我的尝试:

myArray = _.without(myArray, {id:"",text:""});
Run Code Online (Sandbox Code Playgroud)

该数组应如下所示:

              [ {id: "28b", text:"Phill"},
                {id: "12c", text:"Peter"},
                {id: "43f", text:"Ashley"},
                {id: "9a", text:"James"},
              ];
Run Code Online (Sandbox Code Playgroud)

如果此库有解决方案,我也会使用 jQuery。

Osk*_*ura 5

你可以试试这个:

_.filter(myArray, _.isEmpty)
Run Code Online (Sandbox Code Playgroud)

我假设空的意思

var obj = {}
Run Code Online (Sandbox Code Playgroud)

  • OP 不是在寻找反函数吗?`_.filter(myArray, _.isEmpty)` 只会留下空对象,`_.reject(myArray, _.isEmpty)` 只会留下非空对象。 (6认同)