簡體   English   中英

Swift-基於鍵的地圖字典

[英]Swift - map dictionary based on keys

考慮字典:

var dict : [String : String]! = ["12" : "This", "5" : "is", "52" : "a", "42" : "Test"]

var keys = Array(dict.keys)

var values : [String]! = [String]()
for (_, key) in keys.enumerated() {
    values.append(dict[key]!)
}

Array(dict.values)產生與上述相同的結果嗎?

有沒有更簡單的方法可以根據keys映射dictionary而不enumerate keys

問,因為我想使用相同的keys為它們的值映射different dictionaries

PS:不必分類。

已編輯

考慮下面的json:

{
  "data": {
    "forecast_numbers": {
      "15": 6397822,
      "20": 985448,
      "76": 2499160,
      "130": 4480161
    },
    "actual_numbers": {
      "15": 6344454,
      "20": 1645125,
      "76": 1644789,
      "130": 2451170
    },
    "accuracy": {
      "15": -0.83415887469204,
      "20": 66.941837621062,
      "76": -34.18632660574,
      "130": -45.288350128489
    },
    "xaxis": {
      "15": "ABC",
      "20": "BCD",
      "76": "BNM",
      "130": "NNN"
    }
  }
}

我想繪制forecast_numbersactual_numbers valuesxaxis的值。 是否想知道除了使用enumerated()之外還有其他方法來獲取值?

通過查看更新的示例,您的目的還不夠清楚,但是如果您只想收集每個相同鍵的值,則可以編寫如下內容:

let data = json["data"] as! [String: [String: Any]]
let result = data["xaxis"]!.map {($0.key, $0.value, data["forecast_numbers"]![$0.key]!, data["actual_numbers"]![$0.key]!)}
print(result) //->[("130", NNN, 4480161, 2451170), ("20", BCD, 985448, 1645125), ("76", BNM, 2499160, 1644789), ("15", ABC, 6397822, 6344454)]

假設你有一個在JSON數據json作為[String: AnyObject]

(還假設您的json永遠不會包含一些損壞的數據。似乎使用了太多! 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM