Swift:在类数组中查找值的索引并过滤数组

时间:2015-10-20 01:41:22

标签: ios arrays swift

我的class定义如下:

class placeData: Equatable {
var description : String
var selected : Bool

init (description : String, selected : Bool) {
    self.description = description
    self.selected = selected
    }
}

然后我按如下方式定义array

var placeDataArray = Array<placeData>()

并填充一些项目:

placeDataArray = [placeData(description: "Afghanistan", selected: false), placeData(description: "Albania", selected: false)]

我要做的是获取“阿富汗”等描述的索引,然后从selectedtrue更改为falseindexOffind方法似乎不起作用,除非我错误地使用它们。

我还尝试filter placeDataArray true,以便所有descriptions true值都出现在我设置的变量中。但是,我也是错误的。我是一个相当新的快速,似乎无法弄清楚这些。此外,数组随用户输入而变化,因此进行索引和过滤。

提前致谢

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法就是:

if let index = placeDataArray.indexOf ({ $0.description == "Afghanistan" })
{
    placeDataArray[index].selected = true
}

它不需要Equatable。

同样,您可以使用过滤器仅显示所选项目:

let selected = placeDataArray.filter { $0.selected == true }