簡體   English   中英

包含失敗的過濾器數組

[英]Filter array with includes failing

這表現如預期,我得到“香蕉”......

let like = ["banana"];
let fruits = [
    { name: "apple" },
    { name: "banana" },
    { name: "pear" },
];

let fruits2 = fruits.filter((f: any) => like.includes(f.name));
console.log(fruits2);

但這失敗了……

ticketDetailsSubset2 = ticketDetailsArray.filter(
 (i: any) => !excludeTickets.includes(i["stl19:TicketNumber"][0])            
);

excludeTickets 的數組就是這個......

0: ["0017522827238"]

我正在遍歷包含 3 個對象的 ticketDetailsArray ......

  • 第一個 object 包含 - stl19:TicketNumber: ["0017522827238"]
  • 第二個 object 包含 - stl19:TicketNumber: ["0017522827238"]
  • 第 3 個 object 包含 - stl19:TicketNumber: ["0017522827239"]

我應該只取回第三個 object,因為第一個兩個對象在 excludeTickets 中。 盡管我是初學者,但我還是拋出了水果示例以證明我走在正確的軌道上。 我也手動嘗試過

!excludeTickets.includes("0017522827238") 

它仍然沒有工作。 一切都歸還。 我有一段類似的.filter 代碼和另一個條件檢查,它可以工作。 有什么區別-.includes? 所以我猜 include 並不是為了做我認為它做的事情,但是水果選項又起作用了?

excludeTickets是一個二維數組(注意excludeTickets[0]周圍的方括號),而不是字符串數組。 你需要把它弄平。

flatTickets = excludeTickets.flatMap(el => el);
ticketDetailsSubset2 = ticketDetailsArray.filter(
    (i: any) => !flatTickets.includes(i["stl19:TicketNumber"][0])            
);

暫無
暫無

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

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