辞書マップは、文字列を文字列配列と見なします

411をちょうだい
struct Item2 {
    var itemid: Int
    var category_id: Int
    var category_name: String
    var name: String
}

struct Item{
    var name = String()
    var rows = [Row]()
}

struct Row{
    var size: Int
}

struct Collapsed{
    var category_opened = Bool()
    var category_id = Int()
    var category_name = String()
    var items = [Item]()
}

let menu2 = [
    Item2(itemid: 5, category_id: 0, category_name: "category1", name: "item1"),
    Item2(itemid: 2, category_id: 0, category_name: "category1", name: "item2"),
    Item2(itemid: 3, category_id: 0, category_name: "category1", name: "item3"),
    Item2(itemid: 1, category_id: 1, category_name: "category2", name: "item4"),
    Item2(itemid: 7, category_id: 1, category_name: "category2", name: "item5"),
    Item2(itemid: 9, category_id: 1, category_name: "category2", name: "item6")]

let mapping = Dictionary(grouping: menu2, by: { $0.category_id })
// Map that dictionary into an array of Sorted and then sort that array by category_id
let collapsedItems: [Collapsed] = mapping.map {
    Collapsed(
        category_opened: false,
        category_id: $0.key,
        category_name: $0.value.map { $0.category_name }, // Error: Cannot convert value of type '[String]' to expected argument type 'String'
        items: $0.value.map { $0.name }
    )
}
.sorted { $0.category_id < $1.category_id }

辞書を使用してデータを再構築しようとしていますが、下から5行目に次のようなエラーが表示されます。

タイプ '[String]'の値を期待される引数タイプ 'String'に変換できません

私の知る限り、Collapsed.category_nameそしてItem2.category_name両方の文字列なので、問題は何ですか?

ニラブD

エラーはかなり明白です。

タイプ '[String]'の値を期待される引数タイプ 'String'に変換できません

このコード行が$0.value.map { $0.category_name }返されます[String]、あなたがプロパティでそれを設定しているcategory_nameの一種で、Stringあなたが追加したことを、あなたのデータに基づいて、MENU2あなたがセットに必要なものをアレイの両方ので、グループ化辞書から最初のオブジェクトのカテゴリ名であるcategory_idとはcategory_nameに属していますお互い。

だから代わりに

category_name: $0.value.map { $0.category_name },

あなたが持っている必要があります

category_name:  $0.value.first?.category_name ?? "", 
// You can force wrap the first property too as of you have make dictionary using grouping it will at least have single object.

これを解決すると、オンラインでエラーが発生します items: $0.value.map { $0.name }

タイプ '[String]'の値を期待される引数タイプ '[Item]'に変換できません

だから代わりに

items: $0.value.map { $0.name }

あなたが持っている必要があります

items: $0.value.map { Item(name: $0.name, rows: []) }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

辞書を配列から文字列にマップします

分類Dev

Javaは文字列データをPythonの辞書にマップします

分類Dev

pythonは辞書の配列を辞書にマップしますか?

分類Dev

文字列をIntまたは文字列にマップする辞書のJSON配列をSwiftに保存するにはどうすればよいですか?

分類Dev

文字列からの辞書は改行文字をスキップします

分類Dev

Javaは文字列の配列を整数の配列にマップします

分類Dev

Pythonは文字列を辞書として解析します

分類Dev

パンダは配列の辞書にマップします

分類Dev

PySparkは、文字列化された辞書の配列を行に分解します

分類Dev

パンダの辞書から部分的な文字列をマップします(再び)

分類Dev

C#は文字列を配列に分割し、次に辞書のキーと値のペアに分割します

分類Dev

JSON文字列のJS配列をGolangマップとして解析します

分類Dev

キーを文字列配列と比較してマップから取得します

分類Dev

大きな文字列を反復処理し、辞書のパフォーマンスで部分文字列のメンバーシップを確認します

分類Dev

マップからキーを文字列配列として取得する方法は?

分類Dev

文字列のNumPy配列を整数にマップします

分類Dev

Python:配列の一般的な要素に辞書またはハッシュマップを使用することをお勧めします

分類Dev

配列と文字列を配列にマージします

分類Dev

結合とマップを使用して、配列の配列を文字列に出力します

分類Dev

辞書の辞書で値として文字列を見つけ、そのキーを返します

分類Dev

文字列としてではなく値をプッシュする配列

分類Dev

文字列numpyとmatplotlibの配列をプロットします

分類Dev

pysparkで文字列、インデックスを使用して辞書(マップ)を作成します

分類Dev

空のJavaScript配列は文字列と見なされますか?

分類Dev

辞書で使用する大文字と小文字を区別しない文字列?

分類Dev

Python : 文字列ではなく文字列を考慮して、辞書内のキーと値を逆にする

分類Dev

文字列と辞書の辞書をフラット化する

分類Dev

辞書と文字列を比較して辞書を出力する方法は?

分類Dev

C#で文字列キータイプを使用する大文字と小文字を区別しない辞書

Related 関連記事

  1. 1

    辞書を配列から文字列にマップします

  2. 2

    Javaは文字列データをPythonの辞書にマップします

  3. 3

    pythonは辞書の配列を辞書にマップしますか?

  4. 4

    文字列をIntまたは文字列にマップする辞書のJSON配列をSwiftに保存するにはどうすればよいですか?

  5. 5

    文字列からの辞書は改行文字をスキップします

  6. 6

    Javaは文字列の配列を整数の配列にマップします

  7. 7

    Pythonは文字列を辞書として解析します

  8. 8

    パンダは配列の辞書にマップします

  9. 9

    PySparkは、文字列化された辞書の配列を行に分解します

  10. 10

    パンダの辞書から部分的な文字列をマップします(再び)

  11. 11

    C#は文字列を配列に分割し、次に辞書のキーと値のペアに分割します

  12. 12

    JSON文字列のJS配列をGolangマップとして解析します

  13. 13

    キーを文字列配列と比較してマップから取得します

  14. 14

    大きな文字列を反復処理し、辞書のパフォーマンスで部分文字列のメンバーシップを確認します

  15. 15

    マップからキーを文字列配列として取得する方法は?

  16. 16

    文字列のNumPy配列を整数にマップします

  17. 17

    Python:配列の一般的な要素に辞書またはハッシュマップを使用することをお勧めします

  18. 18

    配列と文字列を配列にマージします

  19. 19

    結合とマップを使用して、配列の配列を文字列に出力します

  20. 20

    辞書の辞書で値として文字列を見つけ、そのキーを返します

  21. 21

    文字列としてではなく値をプッシュする配列

  22. 22

    文字列numpyとmatplotlibの配列をプロットします

  23. 23

    pysparkで文字列、インデックスを使用して辞書(マップ)を作成します

  24. 24

    空のJavaScript配列は文字列と見なされますか?

  25. 25

    辞書で使用する大文字と小文字を区別しない文字列?

  26. 26

    Python : 文字列ではなく文字列を考慮して、辞書内のキーと値を逆にする

  27. 27

    文字列と辞書の辞書をフラット化する

  28. 28

    辞書と文字列を比較して辞書を出力する方法は?

  29. 29

    C#で文字列キータイプを使用する大文字と小文字を区別しない辞書

ホットタグ

アーカイブ