【发布时间】:2016-05-28 22:20:31
【问题描述】:
所以如果我有一个如下所示的数组:
var myArray = ["BMW", "Toyota", "Ford", "Lamborghini", "Ferrari", "Lada"]
我想在“福特”之后显示数组内的值,所以宝马、丰田和福特没有显示出来。我该怎么做?
【问题讨论】:
标签: ios arrays xcode swift nsarray
所以如果我有一个如下所示的数组:
var myArray = ["BMW", "Toyota", "Ford", "Lamborghini", "Ferrari", "Lada"]
我想在“福特”之后显示数组内的值,所以宝马、丰田和福特没有显示出来。我该怎么做?
【问题讨论】:
标签: ios arrays xcode swift nsarray
使用 Swift 切片,例如:
myArray[3...myArray.count - 1]
输出
["Lamborghini", "Ferrari", "Lada"]
如果您不知道Ford 元素的索引,请使用indexOf 方法查找:
if let index = myArray.indexOf("Ford") {
let startIndex = index + 1
let endIndex = myArray.count - 1
let slice = myArray[startIndex...endIndex]
let array = Array(slice)
print(array) // prints ["Lamborghini", "Ferrari", "Lada"]
}
正如@leo Dabus 指出的,从数组中获取所需部分的更简单的方法是使用suffixFrom 方法:
if let index = myArray.indexOf("Ford") {
let slice = myArray.suffixFrom(index.successor())
let array = Array(slice)
print(array) // prints ["Lamborghini", "Ferrari", "Lada"]
}
【讨论】:
myArray.suffixFrom(index.successor())
斯威夫特 3
你可以使用dropFirst,它返回一个没有前N项的子数组:
let myArray = ["BMW", "Toyota", "Ford", "Lamborghini", "Ferrari", "Lada"]
let subArray = Array(myArray.dropFirst(3)) // ["Lamborghini", "Ferrari", "Lada"]
还有indexOf查找第一项,然后从索引中获取子数组:
if let index = myArray.index(of: "Ford") {
let subArray = Array(myArray.dropFirst(index.advanced(by: 1))) // ["Lamborghini", "Ferrari", "Lada"]
}
【讨论】: