[英]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.