如何删除数组中的项目? [复制]

2023-11-30

我正在编码Swift,并与一个问题混淆。 我遇到了索引超出范围错误当我尝试在数组枚举期间从数组中删除一项时。

这是我的错误代码:

        var array :[Int] = [0,1,2,3,4,5]
        for (index, number) in array.enumerate() {
            if array[index] == 2 {
               array.removeAtIndex(index) // Fatal error: Index out of range
            }
        }

这是否意味着在每个 for 循环期间不会调用 array.enumerate() ?

我必须这样更改我的代码:

    for number in array {
       if number == 2 || number == 5 {
          array.removeAtIndex(array.indexOf(number)!)
       }
    }

Or

var index = 0
repeat {
    if array[index] == 2 || array[index] == 4 {
        array.removeAtIndex(index)
    }
    index += 1

} while(index < array.count)

当您枚举同一数组时,您会同时删除项目。使用过滤器代替:

var array: [Int] = [0,1,2,3,4,5]
array = array.filter{$0 != 2}

或者,对于多个值,使用Set:

let unwantedValues: Set<Int> = [2, 4, 5]
array = array.filter{!unwantedValues.contains($0)}

同一行:

array = array.filter{!Set([2, 4, 5]).contains($0)}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除数组中的项目? [复制] 的相关文章

  • iOS - 如何在 swift 中使用 `NSMutableString`

    我已经看过这段 Objective C 代码 但我很难在 swift 中做同样的事情 NSMutableAttributedString res self richTextEditor attributedText mutableCopy
  • 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

    我有一个视图控制器 显示带有 UITextView 的视图 并且我想在键盘出现时调整视图的大小 以便 UITextView 不会被键盘覆盖 我几乎在所有情况下都可以正常工作 据我所知 仅当视图控制器以 ModalPresentationSt
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 Vapor 和 Leaf 将图像从浏览器上传到 Amazon S3?

    我已经设置了 AWS S3 存储桶 并且可以使用 Vapor 3 和 Postman 上传文件 PUT request 和标头 x amz acl public read 但我想从浏览器中执行此操作 我使用的是 leaf 那么如何从浏览器上
  • 有关 Swift 编译器选项的文档

    您好 我想开始在 Apple Swift 语言上运行一些微基准测试 然而 我觉得很难找到有关编译器优化的不同选项的适当文档 我读过很多关于其他人的语言微基准的问题和文章 但是如果能有一些关于该主题的可靠文档那就太好了 在最新的测试版中 使用
  • 每 24 小时触发一次方法

    我正在尝试每天在给定时间触发一个方法 我尝试了一些方法 但我无法真正使其发挥作用 任何意见 将不胜感激 此外 如果无论应用程序是否打开它都会触发 那就更理想了 这可能吗 UI本地通知 http developer apple com lib
  • Swift,以编程方式更改 UICollectionViewCell 和 UILabel(单元格内)的宽度

    我已将单元格 UICollectionViewCell 的宽度设置为等于 UICollectionView 的宽度 并且我尝试对该单元格中包含的 UILabel 执行完全相同的操作 我认为下面的代码准确地解释了我想要实现的目标 所以我在这里
  • 从命令行添加 Xcode 开发者帐户

    我正在尝试使用xcodebuild allowProvisioningUpdates在我只能通过命令行访问的计算机 Azure Devops macOS 托管计算机 上 不幸的是 根据man xcodebuild为了使用 allowProv
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 如何向标准 UIButton 添加徽章? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在标准中添加看起来标准的徽章UIButton 如果不支持半原生 那么实现此目的最简单的方法是什么 示例图片 这是 Sascha
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • UIView 圆角 - Swift 2.0?

    我会尝试将一些项目更新到 Swift 2 0 我有一个视图 左上角有一个圆角 在 Swift 没有警告 没有错误 只是没有圆角 这就是它在 Swift let maskPath UIBezierPath roundedRect conten
  • 如何使用 RX 应用宽限时间?

    我有一个Observable
  • 当直接从 usdz 文件而不是 Reality Composer 文件加载模型时,如何在 RealityKit 中渲染阴影?

    将模型直接从 usdz 文件添加到场景锚点时 模型下方不会出现接地阴影 如果您将模型导入 RealityComposer 并添加 RealityComposer 场景 则会出现这些 但是 您可以在不使用 RC 的情况下启用接地阴影吗 我尝试
  • iOS:如何知道 reloadData() 已完成其任务?

    我想滚动到给定索引 self boldRowPath 但是当我调试时scrollToRow之前执行reloadData 如何知道reloadData已完成 func getAllTimeEvent self arrAllTimeEvent
  • CoreBluetooth:检测设备超出范围/连接超时

    我正在设计一个 iOS 框架来处理多个 BLE 设备 均为同一类型 目前一切都运行良好 除了一件事 客户想要一个包含可用设备的列表 但是 我如何检测过去发现的设备何时不再可用 当我尝试连接到不再可用的设备时 会出现另一个问题 文档说 连接尝
  • 模态转场需要点击 2 次而不是 1 次

    我的 UITableView 需要点击 2 次才能显示所选单元格的详细信息页面 一次用于选择 另一次用于显示详细信息视图 我希望有一个 CLI 直接显示所单击单元格的详细视图 我在 UITableViewManager m 中使用此方法的模
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 带有 base64 数据内容的 HTML5 对象标签导致 Chrome 崩溃

    我正在使用 HTML5 FileReader 读取本地文件 然后 我想在上传到服务器之前立即在浏览器中显示文件内容 我读取该文件并尝试显示它 如下所示 var reader new FileReader reader onloadend f
  • 将变量编号增加 1

    我的代码中有大量字符都声明为比其他字符高 1 例如米1 米2 米3 有什么办法可以将我在 for 循环中搜索的数字增加 1 吗 我有一长串字母 我需要检查其中是否有与个人匹配的字母 但由于情况限制 我无法使用字符串 a1 是我正在寻找的特定
  • 名称错误“html”未使用 beautifulsoup4 定义

    我的 python 3 4 4 代码是 import urllib request from bs4 import BeautifulSoup from html parser import HTMLParser urls file C U
  • 如何在 Symfony 3.4 中从另一个包配置一个包?

    我有一个 Symfony 包 我想让这个捆绑包更改其他捆绑包的配置 例如 我想设置 Doctrine 的默认命名策略或创建我的包使用的自定义独白记录器配置 关键是 当我需要将捆绑包放入项目中时 我不想在 app config yml 中进行
  • jquery: this.not (':animated') && that.is (':visible') 不遵循规则,语法问题?只需几行代码

    当我点击 button 它还在做 do something 虽然 wrapper正在动画并且 wrapper span不可见 所以它不遵守规则 怎么了 button click function if wrapper not animate
  • 尝试从 TimerCallback 访问 Web 浏览器控件时 C#“InvalidCastException”

    基本上我和这位用户有同样的问题 如何通过鼠标按住和释放来检查 TrackBar 滑动我使用提供的第一个解决方案解决了这个问题 但是 当调用计时器时 我想在 Web 浏览器控件上调用 InvokeScript InvokeScript 运行时
  • JavaFX Canvas:绘制虚线

    我正在使用 JavaFX图形上下文对于立即模式绘图Canvas 可以画虚线吗 Thanks 有一个方法设置线短划线对于虚线 一切都像以前一样 gc setStroke Color RED gc setLineWidth 1 gc setLi
  • C++ 重载流运算符、引用参数和匿名实例

    如果我有一个带有重载流运算符的 POD struct Value friend ostream operator lt lt ostream out Value val 我无法将流运算符与匿名实例一起使用 例如我不能这样做 cout lt
  • 无需 join 语句即可从一张表更新另一张表

    我想根据另一个表的值更新表中的列 我使用稍旧版本的 Firebird 2 1 因此它在更新执行期间不支持 join 语句 为了消除这种情况 根据原始 Firebird 常见问题解答中给出的说明http www firebirdfaq org
  • JSF 2.0.3 中的英文错误消息(未验证)?

    我已成功配置 JSF 1 2 以显示来自服务器的英文错误消息 现在我正在过渡到 JSF 2 0 但错误消息似乎又回到了德语 如果你想用谷歌搜索任何东西 本地化错误消息真的很痛苦 顺便说一句 我不知道是谁决定本地化错误消息是一件好事 这是面孔
  • TableView 中的 JavaFX 属性

    我正在自学如何在 TableView 中使用 JavaFX 属性 但在处理某些属性类型时遇到了问题 我有一个包含两个属性的对象 Person public class Person private final StringProperty
  • Laravel 路由文件中的 If 条件

    有没有办法在 Laravel 5 的 paths php 文件中添加 if 语句 我已经尝试过这个但不起作用 Route get function if Auth user Route get PagesController logged
  • 如何等待函数或数据库查询?然后处理结果最后发回

    我有这样的场景 app get async function request response await foo DbConnection then result gt console log response ready let foo
  • 在 Apache Thrift C# 中将流作为属性发送

    我想在 Thrift 服务中使用流 例如 在服务方法中使用流或类似的东西作为方法的参数 例如 能够将 IDataReader 的结果序列化为流 然后反序列化对另一服务器端数据的引用 我认为这显然不可能 但我想知道是否有另一种方法可以实现类似
  • 函数内公式错误

    我想用survfit and basehaz 在函数内部 但它们不起作用 你能看一下这个问题吗 感谢您的帮助 以下代码会导致错误 library survival n lt 50 total sample size nclust lt 5
  • 从套接字读取缓冲区

    我正在用 c 编写简单的服务器 客户端 其中服务器临时存储来自客户端的消息并在客户端请求时检索它 问题是当客户端从服务器接收消息时 缓冲区的行为有点奇怪 我所做的只是读取从服务器接收的数据并将其打印在屏幕上 但不知何故缓冲区被覆盖的程度超过
  • D3 补间 - 暂停和恢复控件

    我正在尝试编辑这个d3 示例 更具体地说 我将尝试应用暂停 恢复控件暂停恢复指南除了像这样的控制栏外 我们还在视频下提供了控制栏 最后我想象有这样的事情 如何在开始时应用暂停恢复控制 这是一个快速实施 暂停本质上取消了当前的转换 并且播放根
  • 无法将 TableRowSorter 添加到 SwingWorker 生成的 JTable 中

    谢谢装满鳗鱼的气垫船注意到我的问题充满了混乱的代码 不太可能得到解决 从那时起 我创建了一个 最小 测试程序来显示该问题 问题 我想要做的是有一个 GUI 它显示包含员工信息的表格 并且还允许用户通过在 GUI 顶部的 jtextfield
  • 如何在Swift中同时实现三个手势?

    我正在构建 SwiftUI 应用程序 我需要在视图中旋转 放置签名并调整其大小 我已经实现了最后两个手势 但是当我激活最后一个手势时 它破坏了一切 理想的情况是黑圈能够同时配置角度和大小 但两者开始相互冲突 在此测试片段中 我选择了使用的代
  • 如何删除数组中的项目? [复制]

    这个问题在这里已经有答案了 我正在编码Swift 并与一个问题混淆 我遇到了索引超出范围错误当我尝试在数组枚举期间从数组中删除一项时 这是我的错误代码 var array Int 0 1 2 3 4 5 for index number i