Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在Swift中删除与myindexes数组中的索引匹配的所有项_Arrays_Swift - Fatal编程技术网

Arrays 如何在Swift中删除与myindexes数组中的索引匹配的所有项

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", "

我有一个itemArray,需要删除另一个数组indexArray中包含的所有项索引

列表=[1,2,3,4,5] 行=[2,4] 因为我是一排排的{ 李斯特:我 }
我确实想删除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: