我有一个User对象数组,其中包含status属性。
现在我想用状态过滤对象
状态: 等候 进行中 JustResearch 没兴趣 不适用 Intertested AlreadyBooked
还有一项财产资格 10 20 30
let array = Array<User> // assuming this has array of user values
let filteredArray = array.filter { !$0.status.contains("Waiting") || !$0.status.contains("JustResearch") !$0.status.contains("AlreadyBooked") || !$0.eligibility.contains("20")}
我需要类似上面的内容filteredArray应该只包含InProgress,JustResearch,NotInterested和NotApplicable的用户对象
我在尝试使用过滤器时出现错误,如何应用具有多个条件的过滤器。
答案 0 :(得分:0)
使用以下代码。
我修改了你的条件(即!$0.status.contains("Waiting")
到$0.status.contains("InProgress")
),因为你只需要有InProgress,JustResearch,NotInterested和NotApplicable的用户对象。
let filteredArray = array.filter { $0.status.contains("InProgress") || $0.status.contains("JustResearch") || $0.status.contains("NotInterested") || $0.status.contains("NotApplicable")}
答案 1 :(得分:0)
在
之后丢失了SELECT app_user.au_userid, (SELECT COUNT (app_user.au_id) FROM app_user JOIN orders ON app_user.au_id = orders.o_au_id GROUP BY app_user.au_id) AS total, SUM (order_detail.od_quantity), (order_detail.od_quantity*SUM (order_detail.od_subtotal)) AS total_amount FROM app_user JOIN orders ON app_user.au_id = orders.o_au_id JOIN order_detail ON orders.o_id = order_detail.od_order_id GROUP BY app_user.au_userid
||
此代码可以使用:
!$0.status.contains("JustResearch")
答案 2 :(得分:0)
实际上您不想检查status
是否包含字符串,您想检查字符串status
是否相等
可能的解决方案是创建 whiteList 数组。然后,您可以检查数组是否包含状态。
let array = Array<User> // assuming this has array of user values
let whiteList = ["InProgress", "JustResearch", "NotInterested", "NotApplicable"]
let filteredArray = array.filter { whiteList.contains($0.status) }