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

Swift 4中如何提取特定数组?如何通过键获取数组元素值?

如何从quizsArray中通过“键”获取元素值

嘿,看起来你是想从自己构建的quizsArray里,通过类似“键”的方式获取Question对象的属性或者对应的元素对吧?我给你几个实用的方案,适配不同的场景:

1. 按数组索引直接获取元素并访问属性

如果已经知道目标元素在数组中的位置,直接通过索引取出对象,再访问它的属性即可:

// 获取数组第一个元素的questionText
let targetQuestionText = quizsArray[0].questionText
// 获取该元素的正确选项索引
let targetCorrectAnsIndex = quizsArray[0].correctAns
// 甚至可以直接拿到正确选项的文本
if targetCorrectAnsIndex < quizsArray[0].options.count {
    let correctOptionText = quizsArray[0].options[targetCorrectAnsIndex]
    print("正确选项:\(correctOptionText)")
}

2. 通过属性值作为“键”查找对应的Question对象

如果你不知道元素的索引,但知道某个属性的值(比如questionText是“青”),可以用first(where:)方法匹配查找:

// 根据questionText匹配查找
if let targetQuestion = quizsArray.first(where: { $0.questionText == "青" }) {
    // 找到后可以访问任意属性
    print("问题文本:\(targetQuestion.questionText)")
    print("所有选项:\(targetQuestion.options)")
    print("正确选项索引:\(targetQuestion.correctAns)")
} else {
    print("没有找到匹配的问题")
}

3. 转换为字典,用属性作为键快速取值

如果需要频繁通过某个属性(比如questionText)查找元素,建议先把数组转换成字典,这样后续的查找会更高效:

// 将数组转为字典,key是questionText,value是对应的Question对象
let quizDictionary = Dictionary(quizsArray.map { ($0.questionText, $0) }, uniquingKeysWith: { _, last in last })

// 直接通过键获取对应的Question对象
if let hotQuestion = quizDictionary["暑"] {
    print("问题「暑」的正确选项是:\(hotQuestion.options[hotQuestion.correctAns])")
}

注意:如果你的questionText存在重复值,上面的代码会自动保留最后一个匹配的元素;要是想自定义重复键的处理逻辑,可以调整uniquingKeysWith的闭包内容。

内容的提问来源于stack exchange,提问作者Kawazoe Kazuke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:57:25