我想返回给定自定义对象数组中的第一项,并返回索引数组和第一个自定义对象元素,以便我可以在其周围包装一个保护语句。
即:
让firstOrder = existingOrders.enumerated().flatMap{$0,$1}.first
或尝试#1
let array = ExistingOrders.enumerated().map { (a, b) in return [$0.index : $1.element] }.first
或尝试#2
let array = existingOrders.enumerated().map { ($0.offset, $0.element) }.first
print (array)
这并没有返回实际的对象;它似乎返回一个元组。
哪里
existingOrders = [ExistingOrder, EngineYard.ExistingOrder, EngineYard.ExistingOrder]
它返回以下内容;
[(0, EngineYard.ExistingOrder), (1, EngineYard.ExistingOrder), (2, EngineYard.ExistingOrder)]
尝试#3;
let array = existingOrders.enumerated().map { ($0.offset, $0.element) }
print (array)
guard let firstOrder = array.first else {
break
}
print (firstOrder) // should be a tuple of index and custom object
如何获取数组中可选的第一项并返回索引和元素?
非常感谢
<小时/>编辑。我这样做的原因是为了可以将正确的对象传输到另一个类。
// transfer all
while (factory.existingOrders.count > 0) {
let array = myOrderBook.existingOrders.enumerated().map { ($0.offset, $0.element) }
guard let firstOrder = array.first else {
break
}
let index = (firstOrder.0)
factory.orderBook.transfer(index: index, destination: .completedOrder)
}
其中 Orderbook
是一个类;
Factory {
var orderBook:OrderBook = OrderBook()
}
OrderBook {
var existingOrders: [ExistingOrder] = [ExistingOrder]()
var completedOrders: [CompletedOrder] = [CompletedOrder]()
}
我的想法是,我想将一个对象从现有订单转移到已完成的订单,反之亦然
该函数需要一个索引,但我想我可以重构它,这样我就可以传输一个对象。
最佳答案
我正在寻找的答案是;
let array = myOrderBook.existingOrders.enumerated().map { ($0.offset, $0.element) }
但是,我发现我的代码需要重构。
谢谢。
问题已结束。
关于arrays - Swift - 获取数组中的第一项,并返回元素和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44303848/