在数组中查找与Swift中的特定条件匹配的第一个元素

时间:2016-02-21 20:06:01

标签: ios arrays swift

假设我有一个像这样的数组:

[
    ["required": true],
    ["required": true],
    ["required": false],
    ["required": false],
    ["required": false],
    ["required": false],
    ["required": false]
]

我想在required首先等于false(位置2)的索引处将新元素插入到此数组中。我确信我可以使用基本的for-each循环来确定这一点,例如:

var idx = 0
for (i, el) in myArray.enumerate() {
    if el["required"] == false {
        idx = i
        break
    }
}

但这似乎不像Swift一样。在Swift 2中是否有更清洁(即代码更少)的方法?也许是使用过滤器或地图的东西?

2 个答案:

答案 0 :(得分:8)

这个怎么样:

$reviewsum

斯威夫特3:

let idx = myArray.indexOf({$0["required"] == false})

答案 1 :(得分:0)

let required    = array.filter { $0["required"] == true }
let notRequired = array.filter { $0["required"] == false }
let result      = required + [["required": true]] + notRequired