我有一个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.
更多推荐
发布评论