繁体   English   中英

尝试过滤返回填充值的对象数组

[英]Tryng to filter a array of objects returning filled values

我试图过滤我的对象数组,所以我只得到具有填充属性的对象,但由于某种原因我没有定义。

这是数组的样子

在此处输入图片说明

这是我的过滤功能

var newArray = $scope.informacoesNutricionais.propriedadesNutricionais.obrigatorias.filter(function (obj){ return !!obj.quantityContained});

您正在检查quantityContained包含不虚假的内容。

首先,使用布尔运算符执行此操作并不是最好的方法,因为如果quantityContained0 ,这仍然会返回false,并且不会返回该项目。 我猜这就是你想要发生的事情,但它仍然在滥用功能,不应该这样做。

不知道为什么你会 undefined 因为我可以运行类似的东西:

var a = {arr:[{a:"a"}, {a:null}, {a:null}, {a:null}]}

a.arr.filter(function(obj){return !!obj.a})
[{…}]
    0: {a: "a"}
    length: 1
    __proto__: Array(0)

或更好:

a.arr.filter(function(obj){return obj.a !== null})

两者都返回相同的东西。

使用obj !== null ,看看是否有效。

var newArray = $scope.informacoesNutricionais.propriedadesNutricionais.obrigatorias.filter(function (obj) {
    return obj.quantityContained != null;
});

下次请添加代码片段而不是图像,因为这样我们会更容易为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM