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

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(使用前将#替换为@)

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

  • 在 Swift 3 中单击和双击 UITableViewCell

    我在 TableView Cell 上有故事板 segue 我用它来在单元格单击中传输到另一个 VCdidSelectRowAt方法 现在我双击了TapGestureRecognizer处理手机上的点击问题 问题是 单击时 segue 正在
  • 自动调整大小完成后如何获取帧大小

    我想知道 如何以及何时 viewDidLoad viewWillAppear viewDidAppear 可以获得自动调整大小以适合其父视图的 UIViews 框架大小 从你的问题中不清楚你为什么想要它 但我想这是为了布局你的子视图 幸运的
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • Firebase 连接管理器应仅返回一个结果

    我正在关注位于以下位置的文档 https www firebase com docs ios guide offline capability html section connection state https www firebase
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • 如何在 RestKit 中为同一类提供两条发布路线

    由于我无法弄清楚如何为同一个类设置两个不同的 POST 资源路径 因此我尝试手动创建 RKObjectLoader 请求 但它似乎不断发送 GET 请求而不是 POST 即使我已将方法设置为邮政 这是我的代码 User user User
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • iOS 外部附件框架:如何获取特定 MFI 设备的协议字符串

    我正在编写一个 iOS 应用程序 用于与 mini mPlay Drumi MP18B 小型蓝牙扬声器 进行通信 据我所知 showBluetoothAccessoryPickerWithNameFilter仅显示协议字符串添加到 Info
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • 从 RemoteIO 保存音频的示例?

    我进行了搜索 但没有找到任何从 RemoteIO 音频单元保存音频的好示例或教程 我的设置 使用 MusicPlayer API 我有几个 AUSamplers gt MixerUnit gt RemoteIO 音频播放效果很好 我想添加将
  • Swift 如何设计 UIWebView 在 Story Board 中自动调整全屏大小

    我在 StoryBoard 中设计了一个 320x500 的 UIWebView 但是当在 Iphone 6 Plus 模拟器中运行时 我想要这个 webview 全屏或随设备屏幕缩放 如何在故事板中制作它 我在 ViewDidLoad 中
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 在WKWebview中设置useragent

    如何在 WKWebView 中设置自定义用户代理字符串 我正在尝试嵌入我的应用程序的版本 以便我的服务器端可以看到可用的功能 我找到了以下方法 let userAgent MyApp 1 33 7 request setValue user
  • 如果 NSExtensionActivationRule 设置为仅音频,则共享扩展不会出现在有功能的应用程序中

    我正在尝试创建一个共享扩展 用户可以从任何有能力的应用程序上传她的录音 该文档甚至有一个简单的示例 请参阅声明共享或操作扩展支持的数据类型 https developer apple com library content document
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self

随机推荐

  • 带有 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