【问题标题】:Display array from a value in the array从数组中的值显示数组
【发布时间】:2016-05-28 22:20:31
【问题描述】:

所以如果我有一个如下所示的数组:

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

我想在“福特”之后显示数组内的值,所以宝马、丰田和福特没有显示出来。我该怎么做?

【问题讨论】:

    标签: ios arrays xcode swift nsarray


    【解决方案1】:

    使用 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、2 甚至是 100。
    • myArray.suffixFrom(index.successor())
    【解决方案2】:

    斯威夫特 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"]
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 2018-01-24
      • 1970-01-01
      • 2013-02-21
      • 2018-09-23
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多