繁体   English   中英

如何在Javascript中检查对象数组中的空对象属性

[英]How to Check for an empty object property in an array of objects in Javascript

在我的应用程序中,我有一个数据是一个对象数组。如果数组中任何对象的任何对象属性都是空的,那么不应该保存数据。 考虑下面的示例数据,如何遍历数组中的所有对象并检查任何空值。在下面的数据中,第三个对象有一个空的fname属性,如何找到像这样的空对象属性

var obj = [{fname:"name1",lname:"lname1"},
           {fname:"name2",lname:"name2"},
           {fname:"",lname:"name3"}
          ];

您可以使用Object.values()获取对象中所有值的列表。 您可以使用filter()过滤数组中的元素。 结合这两个你可以做这样的事情:

您还可以保留所有不需要的值的数组,然后检查是否存在要过滤的对象值中的任何值。

 var obj = [{fname:"name1",lname:"lname1"}, {fname:"name2",lname:"name2"}, {fname:"",lname:"name3"}, {fname:null,lname:"name4"}]; var filterobj = obj.filter(function(o){ var values = Object.values(o); var arr2 = ["", null]; //array of values you don't want. if(arr2.some(function (val) { return values.indexOf(val) >= 0; })) //checks if atleast one value of arr2 is in values. return false; else return true; }); console.log(filterobj); 

您可以使用Array.reduce将数组减少为仅具有非空fname的元素

 var obj = [{fname:"name1",lname:"lname1"}, {fname:"name2",lname:"name2"}, {fname:"",lname:"name3"}, {fname:null,lname:"name4"}]; var goodNames = obj.reduce(function (notEmptyNames, name) { if (name.fname) notEmptyNames.push(name); return notEmptyNames; }, []); console.log(goodNames); 

暂无
暂无

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

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