通過匹配 id 屬性過濾數組

克里斯托弗

我覺得這必須在某些地方得到回答,但我已經搜索了幾天但沒有運氣。我在下面有一個例子。我有一組用戶,我需要將它們過濾為具有匹配 ID 屬性的用戶,我知道下面的代碼無法編譯.. 非常感謝您對此的任何幫助。

    struct User {
    var id: Int
    var name: String
}

let userArray = [
    User(id: 1, name: "A"),
    User(id: 2, name: "B"),
    User(id: 1, name: "C"),
    User(id: 3, name: "D"),
]


let newArray = userArray.filter({ $0.id == $1.id })


//  This is what i want to achieve 
// newArray = [User(id: 1, name: "A"),  User(id: 1, name: "C")]

在實際項目中,id是動態返回的。所以我只需要能夠檢查匹配的內容,而不知道 id 實際是什麼。

側翼

您的方法將不起作用,因為過濾器僅採用一個動態參數並且一次僅處理一項。因此它不能匹配兩個單獨的數組條目。

您的示例也沒有指定您希望如何處理具有多個不同 User.id 的情況。這個答案假設您希望能夠將它們分成單獨的數組。

Dictionary有一個方便的初始化程序,可以為您完成大部分工作並根據定義的屬性進行分組。分組id將為您提供一個字典,其中鍵是id匹配User記錄的數組然後,您可以過濾字典以獲得一個字典,其中 any 有多個用戶id

let multiples = Dictionary(grouping: userArray, by: \.id).filter{$0.value.count > 1}

使用您的數據,您最終將得到一個字典:

[1: [User(id: 1, name: "A"), User(id: 1, name: "C")] ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通過另一個數組屬性組合和過濾數組屬性

通過匹配 ID 合併 3 個數組

如何通過匹配 mongodb 中的 id 來合併數組字段?

按 id 過濾數組對象 - REACT

將對像數組中的多個特定屬性過濾到新數組中

根據 id 數組過濾對像數組中的 id

通過匹配組 ID 進行廣義替換

使用屬性過濾數據,同時過濾屬性的聯合類型

是否可以總結對像數組的屬性並根據另一個屬性對其進行過濾?

如何過濾數組?

如何通過另一個數組編號鍵過濾數組鍵

Pandas 通過子串匹配過濾數據框列

通過匹配連續列中的值過濾 R 數據幀行

如何在 GTK4 中通過對象 ID 應用 CSS 屬性?

如何通過子 POJO 的屬性過濾複合多對多 POJO?

是否可以通過某些屬性的值過濾嵌套對象?(JS)

通過數據屬性獲取元素

通過獲取匹配的 ID 或行號中的第一個(如果不匹配)來簡化 TSQL

過濾我需要檢查多個屬性以檢查它們是否包含數組中的字符串之一的對象

如何通過 GORM 查詢並僅返回 id 數組?

通過子字符串過濾或減少字符串數組

在 JavaScript 中通過鍵和嵌套值過濾對像數組

如何過濾到一個數組並從中選擇一個隨機 ID?

過濾包含日期的數組

遍歷過濾後的數組

通過分組id獲取最新記錄

通過 nativescript background-http 插件發送負載,其屬性之一是數組

通過 ID 向用戶添加角色

通過與另一個數組中的值進行比較來過濾嵌套數組