给定一个包含任意数量对象的数组,您如何才能干净、安全地从中取出前 3 个元素以存储在新数组中?如果数组不包含至少 3 个元素,则不应触发运行时异常,而应仅将数组中的元素数添加到新数组。
我认为这可能行得通,但它无法在 Xcode 7 中编译,如果可以,我认为它不会像我希望的那样安全地运行:
let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1[0..<3]
//Expected: arr == [1, 2, 3]
let arr1 = [1, 2]
let arr2 = arr1[0..<3]
//Expected: arr2 == [1, 2]
let arr1 = [Int]()
let arr2 = arr1[0..<3]
//Expected: arr2 == []
当然,人们总是可以做这样的事情,或者您可以使用 for 循环,但两者都不干净简洁。我想找到更快捷的方法。
let arr1 = [1, 2]
var arr2 = [Int]()
if photos.count > 0 {
arr2.append(arr1[0])
}
if photos.count > 1 {
arr2.append(arr1[1])
}
if photos.count > 2 {
arr2.append(arr1[2])
}
最佳答案
我认为最简单的方法是
let arr2 = arr1.prefix(3)
关于arrays - 如果存在,将数组中的前几个元素存储在另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049864/