在indexpath.row之后Swift附加到Array(Swift Append to Array after indexpath.row)

编程入门 行业动态 更新时间:2024-10-27 03:36:47
在indexpath.row之后Swift附加到Array(Swift Append to Array after indexpath.row)

我有一个swift数组,我用UITableview填充。

例如

var array: Array<String> = ["ExampleString1","ExampleString2","ExampleString3"]

我的问题是如何附加在Indexpath.row后面的所有项目我按下到一个新的数组。

例如,我按下第0行的第一个UITableview单元格,在didSelectItemAtIndexPath我可以选择indexpath

let test = array[indexPath.row]

如果我按下第一个单元格,我想通过附加到我的新数组来添加ExampleString2和ExampleString3

var newArray: Array<String> = [] newArray.append(Everything After Indexpath that was pressed.)

I have a swift Array that I populate a UITableview with.

e.g

var array: Array<String> = ["ExampleString1","ExampleString2","ExampleString3"]

My question is how to do append all items that come after the Indexpath.row I press to a new array.

e.g I press the the first UITableview cell which is row 0 and in didSelectItemAtIndexPath I can pick up the indexpath

let test = array[indexPath.row]

If I pressed the first cell I want to add ExampleString2 and ExampleString3 by appending to my new array

var newArray: Array<String> = [] newArray.append(Everything After Indexpath that was pressed.)

最满意答案

var array = ["ExampleString1", "ExampleString2", "ExampleString3"] let indexPath = 0 // Your indexPath let newArray = array.enumerate().filter { $0.index > indexPath }.map { $0.element }

像这样的东西。

并使用Paulw11的建议:(如果他发布他的答案,我会删除我的)

var newArray: [String] = [] for index in indexPath + 1...array.count - 1 { newArray += [array[index]] }

基于Paulw11建议的另一种变化:

let newArray = array[indexPath + 1...array.count - 1].map { $0 }

要么:

let newArray = Array(array[indexPath + 1...array.count - 1])

他们都打印出来:

print(newArray) // ["ExampleString2", "ExampleString3"]

您必须添加一些安全检查,因为如果您的indexPath.row是最后一个元素,它现在的方式将导致错误。 在这种情况下,我的原始答案(第一个)更安全。

var array = ["ExampleString1", "ExampleString2", "ExampleString3"] let indexPath = 0 // Your indexPath let newArray = array.enumerate().filter { $0.index > indexPath }.map { $0.element }

Something like this.

And using Paulw11's suggestion: (if he posts his answer I'll delete mine)

var newArray: [String] = [] for index in indexPath + 1...array.count - 1 { newArray += [array[index]] }

Another variation based on Paulw11's suggestion:

let newArray = array[indexPath + 1...array.count - 1].map { $0 }

Or:

let newArray = Array(array[indexPath + 1...array.count - 1])

They all print out:

print(newArray) // ["ExampleString2", "ExampleString3"]

You'll have to add some safety checks because the way it is right now will cause an error if your indexPath.row is the last element. In that case, my original answer (the first one) is more safe.

更多推荐

本文发布于:2023-08-04 18:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1420679.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:row   indexpath   Swift   Append   Array

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!