Получить набор случайных элементов из массива [duplicate]

Nevin Jethmalani спросил: 13 октября 2017 в 07:27 в: arrays

На этот вопрос уже есть ответ здесь:

  • Get random elements from array in swift 4 ответа

Я хочу написать расширение, которое позволит мне поместить в массив и вернуть заданное количество элементов из этого массива без повторяющихся элементов , Как бы я это сделал? Это то, что у меня есть, но оно не идеально. Он не учитывает дубликаты, и это не лучший способ сделать это. Я подумал, что может иметь смысл использовать набор для дубликатов.

extension Array { 
    func randomElement(numberOfItems:Int) -> [Element]  {
        var finalReturn = Array()
        for i in 0..<numberOfItems {
            finalReturn.append(self[Int(arc4random_uniform(UInt32(self.count)))])
        }
        return finalReturn
    }
}

использование должно быть таким.

let selected = allData.randomElement(numberOfItems: 10)

0 ответов