JavaScript 中基於多個過濾條件簡化對像數組
問題:
如何實現我可以在JavaScript 中根據多個過濾條件簡化物件數組嗎?例如,使用以下數組:
var users = [ { name: 'John', email: '[email protected]', age: 25, address: 'USA' }, { name: 'Tom', email: '[email protected]', age: 35, address: 'England' }, { name: 'Mark', email: '[email protected]', age: 28, address: 'England' } ];
和過濾器物件:
var filter = { address: 'England', name: 'Mark' };
我想按地址和名稱過濾所有使用者。目前,我的函數在第一次迭代中添加具有匹配地址的所有用戶,並在第二次迭代中僅添加最後一個具有匹配名稱的用戶。但是,我需要同時按兩個條件進行過濾。
答案:
要根據多個條件過濾物件數組,可以使用以下方法:
users = users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; });
此程式碼迭代物件數組和過濾器對象,確保數組中的每個對像都匹配過濾器中指定的所有條件。 item[key]和filter[key]比較檢查物件item中的屬性key的值是否與篩選器物件中的對應值相符。如果任何條件失敗,過濾器函數將傳回 false,從過濾結果中排除該物件。否則,傳回true,表示該物件滿足所有篩選條件。
透過套用此方法,您可以根據多個條件有效過濾物件數組,確保只有滿足所有條件的物件包含在結果中。
以上是如何在 JavaScript 中透過多個條件過濾物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!