如何在 Swift 中返回 Array 的前 5 个对象?

2024-02-27

在 Swift 中,是否有一种巧妙的方法可以使用 Array 上的高阶方法来返回前 5 个对象? obj-c 的做法是保存一个索引,然后通过数组循环递增索引,直到索引为 5 并返回新数组。有没有办法做到这一点filter, map or reduce?


到目前为止,获取 Swift 数组前 N 个元素的最巧妙方法是使用prefix(_ maxLength: Int):

let array = [1, 2, 3, 4, 5, 6, 7]
let slice5 = array.prefix(5) // ArraySlice
let array5 = Array(slice5)   // [1, 2, 3, 4, 5]

一行是:

let first5 = Array(array.prefix(5))

这样做的好处是边界安全。如果您传递给的计数prefix大于数组计数,那么它只返回整个数组。

NOTE:正如评论中指出的那样,Array.prefix实际上返回一个ArraySlice,不是一个Array.

如果您需要将结果分配给Array输入或将其传递给需要的方法Array参数,您需要将结果强制转换为Array type: let first5 = Array(array.prefix(5))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中返回 Array 的前 5 个对象? 的相关文章

  • 如何在 swiftUI (macOS) 中检测按键按下和释放

    除了标题之外没什么可说的 我希望能够在按下按键和释放按键时 在 macOS 上 在 swiftUI 视图中执行操作 在 swiftUI 中是否有任何好的方法可以做到这一点 如果没有 有什么解决方法吗 不幸的是 键盘事件处理是其中一个令人痛苦
  • 为什么在迭代字典时会出现“类型 [object] 的值没有成员 'lowercaseString'” 错误? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有几个对象 Struct object var title String var one object green v
  • UITableView 快速获取 titleForHeadersInSection

    我想在 UITableView 的部分中设置标题的标题 语法是什么swift设置该部分中标题的标题 func tableView tableView UITableView titleForHeaderInSection section I
  • 如何向 UIView 添加大小调整手柄?

    我试图根据用户请求在运行时动态创建视图 UIImageView 和 UITextView 然后允许用户移动它们并调整它们的大小 除了调整大小之外 我的一切都工作得很好 我尝试使用捏合手势识别器 但发现它对于我想要的东西来说太笨拙了 因此 我
  • 如何右对齐 UILabel?

    Remark 实施 myLabel textAlignment right does not解决了我的问题 这不是我所要求的 我想要实现的是让标签对齐右对齐 为了更清楚地说明 这就是如何left对齐外观 就是这样justify对齐外观 if
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图
  • SwiftUI:状态栏颜色

    有没有办法将 SwiftUI 视图的状态栏更改为白色 我可能错过了一些简单的东西 但我似乎找不到在 SwiftUI 中将状态栏更改为白色的方法 到目前为止我只看到 statusBar hidden Bool 状态栏文本 色调 前景色可以通过
  • 检测 AVAudioPlayer 中的播放结束

    我有几个短的 mp3 声音 我将它们存储在数组中 并希望连续播放它们 有什么方法可以检测 AVAudioPlayer 何时停止播放 以便我可以调用完成处理程序并播放下一个声音 我知道有一个委托 但我正在使用 Playground 和 SKS
  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo

随机推荐

  • 以编程方式下载视频android的第一帧

    我想从我的 Android 应用程序的服务器下载视频文件的单帧 我不想下载前面的完整视频 使用该帧作为缩略图向用户显示 以便用户选择后可以下载 ffmpeg可以使用以下命令从视频流创建缩略图 ffmpeg itsoffset 4 i htt
  • MPI中如何获取物理机的数量

    我可以用MPI Comm size获取处理器总数 但是如何获取真实物理机的数量呢 If by 物理机你的意思是一组处理元素 共享公共内存地址空间 然后是 MPI 3 按类型分割操作MPI COMM SPLIT TYPE可用于便携式获取此类机
  • PHP和2多维数组基于两个键值进行比较

    我有两个像这样的多维数组 original Array 0 gt Array time gt 1364690340 memberid gt 90 type gt single 1 gt Array time gt 1364690341 me
  • 在不使用 CAP_FIRST 的情况下将列中多个单词的首字母大写

    我有一张如下表 Name firstname lastname FirstName Lastname firstName Lastname FirstName lastname 我正在尝试将每个字母大写firstname and lastn
  • 如何使用 Zend DB 执行 MySQL IN 子句?

    我正在尝试使用 Zend Framework 1 11 获取整数数组中的行 this gt dbSelect gt from table prefix product link gt joinLeft table prefix produc
  • Qt如何连接rubberBandChanged信号

    我尝试将 QChartView 类中的 ruby BandChanged 信号链接到 MainWindow 类中的特定函数 主窗口 h class MainWindow public QMainWindow Q OBJECT public
  • Python paramiko 线程安全吗?

    我想在并行执行某些命令时轮询系统状态 例如内存负载或 CPU 负载 我可以在多个 Python 线程中使用一个 Paramiko 客户端还是必须连接多个 Paramiko 客户端 我找不到任何有关 Paramiko 线程安全的文档 感谢您的
  • System.getProperty("os.arch") 在 M1 Mac 上的价值?

    有什么价值System getProperty os arch 返回运行的 Apple Silicon M1 Macaarch64JDK 的端口 例如Liberica https bell sw com端口 即not使用罗塞塔2 基于thi
  • 从已知点对照片进行白平衡

    白平衡是一个相当广泛的主题 但我看到的大多数答案都涵盖了整个图像的自动白平衡技术 该技术没有已知的白色 灰色和黑色点 我似乎找不到很多从已知点涵盖白平衡的内容 我有一个脚本 如下 它拍摄色卡 Spyder Checkr 48 的图像并返回白
  • 从 GitHub 上的 Pull Request 中删除文件

    我已经在 git 上发出了 Pull 请求 使用 xcodeproj project pbxproj 文件 我的错 那么我可以从创建的 Pull 请求中删除这个文件吗 谢谢 您可能会在 master 上合并这个拉取请求 这样你就可以从mas
  • 捕获 R 输出并替换为 LaTeX 代码

    我正在尝试捕获一些 R 代码的输出并将其替换为乳胶代码 如果您运行此代码 library stargazer x lt capture output stargazer mtcars 1 5 1 3 summary FALSE title
  • 如何获取弹性搜索中嵌套对象的数组计数

    有人可以帮助我获取弹性搜索中嵌套对象的聚合计数 假设我的弹性搜索对象映射为 employe dynamic strict properties empId type keyword entities type nested 实体是带有其他对
  • 防止文本表突出显示

    我有一个表 我允许用户 选择 多行 这一切都是使用 jQuery 事件和一些 CSS 来处理的 以直观地指示该行已被 选择 当用户按下 Shift 键时 可以选择多行 有时这会导致文本突出显示 有什么办法可以防止这种情况发生吗 CSS3 有
  • 什么是静态嵌套类? [复制]

    这个问题在这里已经有答案了 可能的重复 Java 静态内部类与非静态内部类 https stackoverflow com questions 1353309 java static vs non static inner class 什么
  • OS X 上的 Pthread 和 gcc 编译问题

    我有一个脚本可以在 Linux Ubuntu 11 04 上编译良好 但不能在 OS X Lion 上编译 gcc pthread o hw1 hw1 c hw1 c 22 error expected asm or attribute b
  • 线程 6,RECV TLSv1 警报:致命,握手失败

    这段代码有什么问题 它应该信任所有主机 但事实并非如此 例如 它可以在 google com 上正常运行 但不能在我的计算机上本地运行的 API 网关服务上运行 为什么 SSL 调试输出 触发 SecureRandom 的播种 完成播种 S
  • 通过 istringstream 进行 C++ 字符串标记化的性能开销

    我想知道性能开销是多少 string line word while std getline cin line istringstream istream line while istream gt gt word parse word h
  • Cordova/phonegap 跟踪应用程序通过 Facebook SDK 安装

    相关问题 如何在 Phonegap Cordova 项目中实施 Facebook 移动安装广告跟踪 https stackoverflow com questions 20305956 我有一个有效的 cordova phonegap 应用
  • 在groovy中动态执行代码

    我正在尝试在 groovy 中动态运行代码 我有someNode 0 这是变量中的值var1 然后我像这样添加双引号 var2 var1 然后我尝试运行这个 request abc var2 Value I saw here https s
  • 如何在 Swift 中返回 Array 的前 5 个对象?

    在 Swift 中 是否有一种巧妙的方法可以使用 Array 上的高阶方法来返回前 5 个对象 obj c 的做法是保存一个索引 然后通过数组循环递增索引 直到索引为 5 并返回新数组 有没有办法做到这一点filter map or red