[英]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 ......
stl19:TicketNumber: ["0017522827238"]
stl19:TicketNumber: ["0017522827238"]
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.