arrays - 如果存在,将数组中的前几个元素存储在另一个数组中

标签 arrays swift

给定一个包含任意数量对象的数组,您如何才能干净、安全地从中取出前 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/

相关文章:

ios - 如何通过 Firebase 邀请通过动态链接发送用户信息

ios - 在 Xcode 8 (Swift) 中处理 DataResponse<Any>

ios - 更改 tableView 中所有单元格的所有对象的 bool 状态

检查数组中的值,然后传递给新数组。 C

swift - 将 Swift 字符串编码为转义的 unicode?

ios - 何时、为何以及如何在 redux 中使用 Action Creators?

swift - 检测你在哪个村庄

javascript - JS : Associative array access over variable?

arrays - 如何在Perl中将数组传递给函数?

java - 将 JDBC 的结果集加载到二维表中