Swift - преобразование массива в словарь на основе пользовательского условия - PullRequest
1 голос
/ 09 мая 2020

Если у меня есть массив объектов в форме:

[{ userId: 3, data: "bla bla"} , { userId: 2, data: "bla bla"}, { userId: 3, data: "bla bla2"}, { userId: 1, data: "bla bla"}, { userId: 1, data: "bla bla2"}]

, я могу преобразовать его в словарь с ключами userId следующим образом:

let dict = Dictionary(grouping: myData, by: {$0.userId})

но что, если я знаю, что у моего пользователя userId 3, и я хочу создать такой словарь:

{
   key: "me",
   value: [{ userId: 3, data: "bla bla"},{ userId: 3, data: "bla bla2"}], 
   key: "others", 
   value: [{ userId: 2, data: "bla bla"}, { userId: 1, data: "bla bla"}, { userId: 1, data: "bla bla2"}]
}

1 Ответ

3 голосов
/ 09 мая 2020

grouping:by: может еще тут поможет! Ключ будет либо "me", либо "others"

let dict = Dictionary(grouping: myData, by: {$0.userId == 3 ? "me" : "others"})
.
...