Arrays Swift数组过滤后获取元素的新索引

Arrays Swift数组过滤后获取元素的新索引,arrays,swift,Arrays,Swift,假设我有这个数组: let a = [0, -1, 2, -3, 4, -5, 6] 我最喜欢的数字是4(索引=4) 现在数组被过滤成负数,如下所示 let b = a.filter { $0 >= 0 } // [0, 2, 4, 6] 我最喜欢的数字(4)现在的索引为2 我的意思是,我如何通过优雅的方式通过代码(我现在最喜欢的索引是2)知道它 谢谢大家! 计算“收藏夹”前面有多少元素未被丢弃。这是您最喜欢的新索引: let a = [0, -1, 2, -3, 4, -5, 6]

假设我有这个数组:

let a = [0, -1, 2, -3, 4, -5, 6]
我最喜欢的数字是4(索引=4)

现在数组被过滤成负数,如下所示

let b = a.filter { $0 >= 0 } // [0, 2, 4, 6]
我最喜欢的数字(4)现在的索引为2

我的意思是,我如何通过优雅的方式通过代码(我现在最喜欢的索引是2)知道它


谢谢大家!

计算“收藏夹”前面有多少元素未被丢弃。这是您最喜欢的新索引:

let a = [0, -1, 2, -3, 4, -5, 6]
let aFavoriteIndex = 4

let b = a.filter({ $0 >= 0 })
let bFavoriteIndex = a.prefix(aFavoriteIndex).filter({ $0 >= 0 }).count
b[bFavoriteIndex] // 4

只需保存该值,然后使用
索引(of:)
查找新索引

let v = a[4]
let newIndex = a.filter { $0 >= 0 }.index(of:v)

您是否知道存在
索引(of:)
?这还不够优雅吗?@Sweeper此api要求元素为EqualTableHi,此api要求元素为EqualTable