簡體   English   中英

篩選具有多個條件的數組

[英]Filter an array with multiple conditions

數組看起來像

products = [
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c9485d37804946bc487ce59",
    },
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c94862a7804946bc487ce5e",
    },
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c9486397804946bc487ce61",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c9485d37804946bc487ce59",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c94862a7804946bc487ce5e",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c9486397804946bc487ce61",
    }
  ]

而當我嘗試僅刪除id="5c94aa7b7a37631ce2a97a72"material="5c9485d37804946bc487ce59"

我使用過濾功能

filtered = products.filter(x => x.id !== id && x.material !== material);

它將刪除所有具有這些ID和材料的產品。 在此功能中設置條件的正確方法是什么?

只需使用|| 而不是&& ,因此兩個條件都必須為false,以便filter回調返回false

 const products = [{ "id": "5c94aa7b7a37631ce2a97a72", "material": "5c9485d37804946bc487ce59", }, { "id": "5c94aa7b7a37631ce2a97a72", "material": "5c94862a7804946bc487ce5e", }, { "id": "5c94aa7b7a37631ce2a97a72", "material": "5c9486397804946bc487ce61", }, { "id": "5c94a0a87a37631ce2a979de", "material": "5c9485d37804946bc487ce59", }, { "id": "5c94a0a87a37631ce2a979de", "material": "5c94862a7804946bc487ce5e", }, { "id": "5c94a0a87a37631ce2a979de", "material": "5c9486397804946bc487ce61", } ]; console.log(products.length); const id = "5c94aa7b7a37631ce2a97a72"; const material = "5c9485d37804946bc487ce59"; const filtered = products.filter(x => x.id !== id || x.material !== material); console.log(filtered.length); console.log(filtered); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM