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