簡體   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