Swift - 获取数组中的第一项,以及 return 元素和索引

Swift - Get first item in array, and return element and indices

我想 return 给定自定义对象数组中的第一项和 return 索引数组和第一个自定义对象元素,这样我就可以在其周围包装一个 guard 语句。

即:

let firstOrder = existingOrders.enumerated().flatMap{[=16=],}.first

或尝试#1

let array = existingOrders.enumerated().map { (a, b) in return [[=17=].index : .element] }.first

或尝试 #2

let array = existingOrders.enumerated().map { ([=12=].offset, [=12=].element) }.first
print (array)

这不是 return 实际对象;它似乎 return 一个元组。

其中

existingOrders = [ExistingOrder, EngineYard.ExistingOrder, EngineYard.ExistingOrder]

下面是 return;

[(0, EngineYard.ExistingOrder), (1, EngineYard.ExistingOrder), (2, EngineYard.ExistingOrder)]

尝试#3;

    let array = existingOrders.enumerated().map { ([=13=].offset, [=13=].element) }
    print (array)

    guard let firstOrder = array.first else {
        break
    }

    print (firstOrder) // should be a tuple of index and custom object

如何获取数组中可选的第一项以及 return 索引和元素?

非常感谢


编辑。我这样做的原因是我可以将正确的对象转移到另一个 class.

    // transfer all
    while (factory.existingOrders.count > 0) {

        let array = myOrderBook.existingOrders.enumerated().map { ([=14=].offset, [=14=].element) }

        guard let firstOrder = array.first else {
            break
        }

        let index = (firstOrder.0)

        factory.orderBook.transfer(index: index, destination: .completedOrder)
    }

其中 Orderbook 是 class;

Factory {
  var orderBook:OrderBook = OrderBook()
}

OrderBook {
  var existingOrders: [ExistingOrder] = [ExistingOrder]()
  var completedOrders: [CompletedOrder] = [CompletedOrder]()
}

我的想法是,我想将对象从现有订单转移到已完成订单,反之亦然

该函数需要一个索引,但我想我可以重构它以便我可以转移一个对象。

我要找的答案是;

let array = myOrderBook.existingOrders.enumerated().map { ([=10=].offset, [=10=].element) }

但是,我发现我的代码需要重构。

谢谢。

问题已关闭。