首頁  >  文章  >  web前端  >  如何在 JavaScript 中透過多個條件過濾物件數組?

如何在 JavaScript 中透過多個條件過濾物件數組?

Patricia Arquette
Patricia Arquette原創
2024-10-26 22:07:29857瀏覽

How to Filter an Array of Objects by Multiple Conditions in JavaScript?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn