查找对象数组

时间:2017-04-26 08:00:37

标签: ios arrays swift

我无法弄清楚如何在数组中找到对象的索引。例如,我有这样的数据结构:

class Person {
var name: String
var age: Int

init(name personName: String, age personAge: Int) {
    self.name = personName
    self.age = personAge
  }
}

let person1 = Person(name: "person1", age: 34)
let person2 = Person(name: "person2", age: 30)
...
var personsArray = [person1, person2, ...]

我尝试使用personsArray.index(where: ....),但我不明白如何使用它。 index(of: ...)不起作用。我认为因为personsArray不符合Equatable协议......

3 个答案:

答案 0 :(得分:15)

index(of: )

在您的情况下获取Person - 它是通用函数。

index(where: ) 

获取您要查找特定人员的条件

你能做什么:

personsArray.index(where: { $0.name == "person1" })

或者您可以将对象发送到:

personsArray.index(of: existingPerson)

对于这两个选项,你可以得到零 - 你必须检查它是否为零(或保护它)。

答案 1 :(得分:1)

从我的角度来看,只需与$stmt = $db->prepare($sql); $data = $_POST['data']; foreach ($data as $key => $value) { $stmt->execute(array( ':mode' => $value['value'], ':id' => $value['id'] )); } 进行比较。

小例子。

===

答案 2 :(得分:0)

我找到了如何使用.index(where...

personsArray.index { (item) -> Bool in item.name == "person2" && item.age == 30 }