我有一个数组student objects
和另一个数组goodStrudentId
。我需要按照goodStrudentId
的顺序从students
数组中获取所有学生对象。 使用多个forloop我可以解决这个问题,但我想学习解决这个问题的最佳方法。我唯一的问题是按照goodStrudentId
的顺序。 下面是一个示例代码来了解我的问题 -Swift:过滤数组的最佳方法
class Student {
var s_id : String
var s_name : String
init(i: String, n: String) {
self.s_id = i;
self.s_name = n;
}
}
var students = [Student(i: "1",n: "a"),
Student(i: "2",n: "b"),
Student(i: "3",n: "c"),
Student(i: "4",n: "d"),
Student(i: "5",n: "e")]
var goodStudentsId = ["5","2"]
var goodStudentObject = getGoodStudentObjectUsingId(students:students, gdStudentsId:goodStudentsId)
/*
Expected answer:
var goodStudentObject = [Student(i: "5",n: "e"), Student(i: "2",n: "b")]
*/
func getGoodStudentObjectUsingId(students:Array<Student>, gdStudentsId:Array<String>) -> Array<Student>! {
/*?????? please complete this func*/
return [];
}
阵列具有'filter'功能;在谷歌搜索这个问题之后,这应该很清楚。你尝试了什么? – Connor
这个网站是一个很好的教育资源,用于更高级的swift函数:https://www.weheartswift.com/higher-order-functions-map-filter-reduce-and-more/ – toddg
我试过用NSPredicate。我会尝试以下答案..不知道为什么我得到反对票。 – Shohrab