[解決済み] 配列からランダムに要素を選ぶ
2022-04-19 02:48:06
質問
配列があり、ランダムに1つの要素を選びたいとします。
最も簡単な方法は何でしょうか?
わかりやすいのは
array[random index]
. しかし、もしかしたら、ruby の
array.sample
? それとも、拡張機能を使ってそのようなメソッドを作ることができるのでしょうか?
どのように解決するのですか?
Swift 4.2以上
新しい推奨手法は、Collectionプロトコルの組み込みメソッドです。
randomElement()
. これは、私が以前想定した空のケースを避けるために、オプショナルを返します。
let array = ["Frodo", "Sam", "Wise", "Gamgee"]
print(array.randomElement()!) // Using ! knowing I have array.count > 0
配列を作らず、count >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])
鋳造品は醜いですが、他の誰かが別の方法を持っていない限り、必要なものだと思います。
関連
-
[解決済み] 配列からランダムに選択する方法は?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み】JavaScriptで配列の要素を削除する - delete vs splice
-
[解決済み】Bashでコマンドライン引数を配列に変換する。
-
[解決済み] リストがどの程度ソートされているかを測定する方法はありますか?
-
[解決済み] groovyの配列/ハッシュ/コレクション/リストに要素があるかどうかをチェックするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み】乱数生成器を使うとモジュロバイアスがかかると言われるのはなぜ?
-
[解決済み] 反復しながら値を変更する
-
[解決済み] PowerShellで配列のすべてのオブジェクトの1つのプロパティの値を選択する
-
[解決済み] 配列中の3つの要素のうち、和が与えられた数値に最も近いものを探す
-
[解決済み] Goでスライスをクリアするにはどうしたらいいですか?
-
[解決済み] インデックスレンジSwiftからの新配列
-
[解決済み] Swift。配列を参照で渡す?
-
[解決済み] groovyの配列/ハッシュ/コレクション/リストに要素があるかどうかをチェックするには?
-
[解決済み] Swiftの配列から最小値・最大値を求める