删除嵌套数组中的空对象

时间:2019-12-30 15:13:05

标签: javascript arrays object

我有一个数组

const exampleArray = [
    {
     id: 1,
     name: test
    },
    {
     id: 1,
     name: test
    },
    {
    },
]

现在数组exampleArray位于另一个对象数组中,所以

const exampleNest = [{
    property1: {},
    property2: [],
    exampleArray: [{...}],
}]

我需要删除exampleArray内的空对象并返回数组的其余部分。

我已经尝试使用过滤器

const noEmptyObjects = exampleNest.filter(({ exampleArray }) =>
    exampleArray.filter(attachment => attachment !== {}),
  );

我也尝试了Object.keys(attachment).length !== 0而不是attachment !== {},但是我继续收到带有空项目的数组。

3 个答案:

答案 0 :(得分:1)

您可以使用简单的https://stackoverflow.com/a/32108184/3932166来检查空对象并对此数组进行检查。

exampleArray.filter(attachment => (condition from above link));

答案 1 :(得分:0)

您可以通过检查对象是否具有id属性来过滤数组

exampleArray.filter(function(obj) { return obj.hasOwnProperty("id"); })

答案 2 :(得分:0)

因为{}是对象。因此,{} == {}始终为假。

exampleArray.filter(attachment => JSON.stringify(attachment) !== "{}")