You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何基于title键从两个数组获取唯一记录?

Swift中基于title键获取两个数组的唯一记录

你需要筛选出仅在其中一个数组中出现的title对应的完整字典,排除在两个数组中都存在的title(无论其他字段值是否不同),可以通过以下步骤实现:

步骤1:定义输入数组

明确输入数据类型(Swift中建议显式声明类型,避免歧义):

let arr1: [[String: String]] = [
    ["title" : "News", "icon" : "news_1"],
    ["title" : "Food", "icon" : "food_1"]
]

let arr2: [[String: String]] = [
    ["title" : "News", "icon" : "news_2"],
    ["title" : "Technology", "icon" : "tech_1"]
]

步骤2:统计每个title的出现次数

合并两个数组的所有title,统计每个title在整体中的出现次数:

// 提取所有有效title(避免字典无title键的情况)
let allTitles = arr1.compactMap { $0["title"] } + arr2.compactMap { $0["title"] }
// 用reduce统计次数(Swift风格的简洁写法)
let titleCount = allTitles.reduce(into: [String: Int]()) { counts, title in
    counts[title, default: 0] += 1
}

步骤3:筛选出唯一记录

合并原数组,筛选出title出现次数为1的元素:

let arr3 = (arr1 + arr2).filter { item in
    guard let title = item["title"] else { return false }
    return titleCount[title] == 1
}

验证结果

打印arr3会得到你期望的结果:

print(arr3)
// 输出:[["title": "Food", "icon": "food_1"], ["title": "Technology", "icon": "tech_1"]]

内容的提问来源于stack exchange,提问作者Hemant Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 07:09:39