从数组中的值显示数组

时间:2016-05-28 22:20:31

标签: ios arrays xcode swift nsarray

所以,如果我有一个看起来像这样的数组:

var myArray = ["BMW", "Toyota", "Ford", "Lamborghini", "Ferrari", "Lada"]

我想在"福特"之后显示数组内的值,所以宝马,丰田和福特都没有出现......我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

使用Swift切片,例如:

myArray[3...myArray.count - 1]

输出

["Lamborghini", "Ferrari", "Lada"]

选项1

如果您不知道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"]
}

选项2

正如@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"]
}

答案 1 :(得分:1)

Swift 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"]
}