使用多個條件簡化 JavaScript 中的複雜物件過濾
考慮需要根據多個條件過濾物件數組。給定一個使用者數組和一個過濾器對象,任務是根據特定屬性過濾使用者。
初始方法:
實作了一個迭代的初始過濾函數過濾器屬性並檢查每個使用者的屬性。然而,這種方法可能會導致冗餘匹配。
改進的解決方案:
為了解決此問題,可以實現修改後的過濾函數,如下所示:
<code class="javascript">users = users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; });</code>
說明:
函數的運算如下:
範例用法:
考慮以下範例:
<code class="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' }; console.log(users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; }));</code>
輸出:
[ { name: 'Mark', email: '[email protected]', age: 28, address: 'England' } ]
這個修改後的過濾器有效地結合了根據指定條件過濾物件的多個條件。
以上是如何根據多種條件高效過濾JavaScript物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!