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

如何用Swift实现函数提取符合指定条件的人员姓名?

问题实现方案

给定数据源

let teachersInfo: [[String]] = [
      ["names", "comments"],
      ["Ian", ",scientist,male, no_available"],
      ["Mark", "teacher,elementary school,female, available_for_new"],
      ["Bryan", "interior designer,male,no_available"],
      ["Tomas", "profesional surfer,master"],
      ["Justine", "no_available, scientist"],
      ["Malek", "teacher, elementary school, available_for_new"],
      ["Adrian", "scientist, profesional surfer, available_for_new"],  
      ["Mike", "elementary schoole,male,no_available"]
]

需求说明

  • 返回所有属于**职业冲浪者(profesional surfer)**的人员姓名
  • 返回所有既是**教师(teacher)且标记为可承接新任务(available_for_new)**的人员姓名

实现代码

1. 获取所有职业冲浪者姓名

func findProfessionalSurfers() -> [String] {
    // 跳过表头行,遍历所有数据行
    return teachersInfo.dropFirst().compactMap { row in
        guard row.count >= 2 else { return nil }
        let name = row[0]
        let comments = row[1]
        // 分割评论字段并去除每个标签的前后空格,避免空格导致匹配失败
        let skillTags = comments.components(separatedBy: ",").map { $0.trimmingCharacters(in: .whitespaces) }
        // 判断是否包含目标标签
        if skillTags.contains("profesional surfer") {
            return name
        }
        return nil
    }
}

调用该函数返回结果:["Tomas", "Adrian"]

2. 获取符合条件的教师姓名

func findAvailableTeachers() -> [String] {
    return teachersInfo.dropFirst().compactMap { row in
        guard row.count >= 2 else { return nil }
        let name = row[0]
        let comments = row[1]
        let tags = comments.components(separatedBy: ",").map { $0.trimmingCharacters(in: .whitespaces) }
        // 同时满足两个标签匹配条件
        if tags.contains("teacher") && tags.contains("available_for_new") {
            return name
        }
        return nil
    }
}

调用该函数返回结果:["Mark", "Malek"]

补充说明

  • 处理评论字段时,先按逗号分割再去除前后空格,是为了兼容数据中存在的空格差异(比如" available_for_new"和"available_for_new")
  • 代码中保留了原数据的拼写规则(比如profesional未修正为professional),确保匹配逻辑与数据源完全对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:06:27