gpt4 book ai didi

arrays - 如何从数组中获取随机元素并将其从那里删除?

转载 作者:行者123 更新时间:2023-12-01 23:51:32 25 4
gpt4 key购买 nike

我知道有一个函数 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)
// ...
}

如果打算删除所有元素,请参阅下面亚历山大的评论。以这种方式删除所有元素的时间复杂度为 O(n^2),而首先使用 .shuffled() 会快得多。

关于arrays - 如何从数组中获取随机元素并将其从那里删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com