Arrays 如何在Swift中删除与myindexes数组中的索引匹配的所有项
我有一个itemArray,需要删除另一个数组indexArray中包含的所有项索引 列表=[1,2,3,4,5] 行=[2,4] 因为我是一排排的{ 李斯特:我 }Arrays 如何在Swift中删除与myindexes数组中的索引匹配的所有项,arrays,swift,Arrays,Swift,我有一个itemArray,需要删除另一个数组indexArray中包含的所有项索引 列表=[1,2,3,4,5] 行=[2,4] 因为我是一排排的{ 李斯特:我 } 我确实想删除3,5,但上面的代码将崩溃。我需要设置rows=[4,2],remove才能正常工作您的代码正在崩溃,因为在删除索引-2处的元素后,数组中的元素计数会减少。因此,当删除索引-5处的元素时,会导致运行时异常索引超出范围 因此,您需要按降序对行数组进行排序,然后从列表中逐个删除元素,即 var list = ["1", "
我确实想删除3,5,但上面的代码将崩溃。我需要设置rows=[4,2],remove才能正常工作您的代码正在崩溃,因为在删除索引-2处的元素后,数组中的元素计数会减少。因此,当删除索引-5处的元素时,会导致运行时异常索引超出范围 因此,您需要按降序对行数组进行排序,然后从列表中逐个删除元素,即
var list = ["1", "2", "3", "4", "5"]
var rows = [2, 4]
rows.sorted(by: >).forEach({ list.remove(at: $0) })
print(list) //["1", "2", "4"]
分享一些代码。你尝试过什么?这是最近在Swift论坛上出现的:@Alexander谢谢你告诉我,这真的是一件好事。你也可以参考这一点:你可以用sortedby简化它:>问题解决了吗?是的,看起来不错。我还将省略并使用尾部闭包语法:.forEach{list.removeat:$0}。或者,您可以改为使用分部方法应用程序:。forEachlist.removeat: