猿问

从数组中选择一个随机元素

从数组中选择一个随机元素

假设我有一个数组,我想随机选择一个元素。

最简单的方法是什么?

显而易见的方式是array[random index]。但也许有类似红宝石的东西array.sample?或者如果没有,可以使用扩展程序创建这样的方法?


月关宝盒
浏览 800回答 3
3回答

慕田峪4524236

Swift 4.2及以上版本新推荐的方法是Collection协议的内置方法:randomElement()。它返回一个可选项以避免我之前假设的空案例。let array = ["Frodo", "Sam", "Wise", "Gamgee"]print(array.randomElement()!) // Using ! knowing I have array.count > 0如果您不创建数组并且不保证计数> 0,您应该执行以下操作:if let randomElement = array.randomElement() {      print(randomElement)}Swift 4.1及以下版本只是回答你的问题,你可以这样做以实现随机数组选择:let array = ["Frodo", "sam", "wise", "gamgee"]let randomIndex = Int(arc4random_uniform(UInt32(array.count)))print(array[randomIndex])铸件是丑陋的,但我相信它们是必需的,除非别人有另一种方式。
随时随地看视频慕课网APP
我要回答