【问题标题】:NSDictionary Swift 4NSDictionary Swift 4
【发布时间】:2019-12-15 06:19:46
【问题描述】:

我有一本这样的字典:

["day": 
[["materia": "Matematica", "inizio": "08:00", "fine": "08:10"],
 ["materia": "Matematica", "inizio": "08:02", "fine": "08:03"], 
 ["materia": "Matematica", "inizio": "08:04", "fine": "08:05"],
 ["materia": "Matematica", "inizio": "08:06", "fine": "08:07"], 
 ["materia": "Matematica", "inizio": "08:08", "fine": "08:09"],
 ["materia": "Matematica", "inizio": "09:00", "fine": "10:00"]],  


"martedì": 
[["materia": "Matematica", "inizio": "08:00", "fine": "08:10"],
 ["materia": "Matematica", "inizio": "08:02", "fine": "08:03"],
 ["materia": "Matematica", "inizio": "08:04", "fine": "08:05"],
 ["materia": "Matematica", "inizio": "08:00", "fine": "08:10"],
 ["materia": "Matematica", "inizio": "08:02", "fine": "08:03"],
 ["materia": "Matematica", "inizio": "08:04", "fine": "08:05"]

如何获得只有“day”主题的数组?我怎样才能得到一个只有“inizio”+“fine”的数组?

【问题讨论】:

  • 您能否将您的 dict 格式化为多行以使其更易于阅读,并可能提供所需结果的示例,例如:let day = [ whatever is the result ]
  • 也许你可以想出一个更好的标题,一个描述你的问题的标题,特别是没有 NSDictionary 的东西,因为这完全不相关
  • 您有一个字典,其中包含 2 个键,“day”和“martedi”。这些键中的每一个都包含字典数组。您想获取“day”键的内容并将其映射到仅包含“inizio”+“fine”键/值对的数组?
  • 您在对其中一个答案的评论中说:“我想要一个包含所有 materia 值的数组:例如 print(arrayDay) Log: Matematica, Matematica, Matematica”。但是在你的问题中你说“我怎样才能得到一个只有“inizio”+“fine”的数组?”您能否编辑您的问题以更清楚地说明您的目标?

标签: arrays swift dictionary plist


【解决方案1】:

假设您想要获取“day”键的内容并将其映射到仅由“inizio”+“fine”键/值对组成的数组:

let dict = [
    "day":
        [
            ["materia": "Matematica", "inizio": "08:00", "fine": "08:10"],
            ["materia": "Matematica", "inizio": "08:02", "fine": "08:03"],
            ["materia": "Matematica", "inizio": "08:04", "fine": "08:05"],
            ["materia": "Matematica", "inizio": "08:06", "fine": "08:07"],
            ["materia": "Matematica", "inizio": "08:08", "fine": "08:09"],
            ["materia": "Matematica", "inizio": "09:00", "fine": "10:00"]
    ],
    "martedì":
        [
            ["materia": "Matematica", "inizio": "08:00", "fine": "08:10"],
            ["materia": "Matematica", "inizio": "08:02", "fine": "08:03"],
            ["materia": "Matematica", "inizio": "08:04", "fine": "08:05"]
    ]
]

//Extract the value of the "day" keyfrom the dictionary. If we can't, crash.
guard let dayArray = dict["day"] else {
    fatalError("splat")
}
//Filter the array to only those entries that contain both 
//  an "inizio" key/value pair
//  a "fine" key/value pair
let inizio_fine = dayArray.filter { $0["inizio"] != nil && $0["fine"] != nil }

//Now map that filtered array to an array of 
//just the "inizio" + "fine" key/value pairs
    .map {
        ["inizio": $0["inizio"]!,
         "fine": $0["fine"]!]
}

print(inizio_fine)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多