从数组列表中随机选择5个元素,而不重复元素

Jac*_*ouf 0 arrays random swift swift3

我目前正在尝试为iOS制作应用程序,但我无法获得一些简单的代码.基本上我需要从数组列表中随机选择5个元素而不重复元素.我有一个草稿,但它只显示一个元素.

这是我的代码:

let array1 = ["salmon", "turkey", "salad", "curry", "sushi", "pizza"]

let randomIndex1 = Int(arc4random_uniform(UInt32(array1.count)))

print(array1[randomIndex1])
Run Code Online (Sandbox Code Playgroud)

Mo *_*eed 7

你可以这样做:

let array1 = ["salmon", "turkey", "salad", "curry", "sushi", "pizza", "curry", "sushi", "pizza"]
var resultSet = Set<String>()

while resultSet.count < 5 {
    let randomIndex = Int(arc4random_uniform(UInt32(array1.count)))
    resultSet.insert(array1[randomIndex])
}

let resultArray = Array(resultSet)

print(resultArray)
Run Code Online (Sandbox Code Playgroud)

A set只能包含唯一元素,因此不能多次使用相同的元素.

我创建了一个空的set,然后只要数组包含少于5个元素(你选择的数字),我迭代并添加一个随机元素set.

在最后一步中,我们需要将集合转换为数组以获取所需的数组.