arrays - 如何从数组中获取随机元素并将其从那里删除?
问题描述
我知道有一个函数randomElement()
可以获取随机元素并返回它。
var array = ["a", "b", "c", "d", "e"]
var result = array.randomElement()
print(array) //["a", "b", "c", "d", "e"]
print(result) //Optional("c")
所以它工作得很好,但所有数组都保持原样。如何从数组中删除该随机元素?有没有一种无需迭代、查找和删除的快速方法?
解决方案
选择随机索引而不是随机元素。
if let index = array.indices.randomElement() {
let value = array.remove(at: index)
// ...
}
推荐阅读
- firebase - Flutter web build 无法在 firebase 上运行 gif
- rust - 正确拆分时 Rust 不允许可变借用
- java - 使用 assertJ 方法 containsOnly() 比较自定义对象的数组
- c++ - c++字符串行恢复到控制台
- swift - 选择器中的持久值更改 SwiftUI 中的视图
- jquery-ui-datepicker - 在 Tabulator 中使用 jQuery datepicker 时如何禁用未来日期?
- r - 如何连接表、保留列和显示 NA 值?
- java - Flutter 中的 Android 许可证
- performance - 如何让我的 rust 代码并行运行得更快?
- python - 基本数组标识问题