前提・実現したいこと
初歩的な質問失礼します。
JavaScriptの練習でコードを書いています。
2次元配列からランダムで要素を取り出す際に行き詰ってしまいました。
該当のソースコード
JavaScript
1 const leaf1 = 178; 2 const leaf2 = 647; 3 const leaf3 = 786; 4 5 const leaf4 = 156; 6 const leaf5 = 195; 7 const leaf6 = 345; 8 9 const leaf7 = 675; 10 const leaf8 = 555; 11 const leaf9 = 362; 12 13 let tree1 = [leaf1, leaf2, leaf3,]; 14 let tree2 = [leaf4, leaf5, leaf6,]; 15 let tree3 = [leaf7, leaf8, leaf9,]; 16 17 let woods = [tree1, tree2, tree3,]; 18 let kareha; 19 //1回目:kareha=156, 2回目:kareha=555, 3回目:kareha=345,,, という感じで
webページ上をクリックするごとに上記のleaf1~9のいずれかをランダムで取り出し
変数karehaに代入(再代入)したいです。
但し、重複はさせたくないです。
試したこと
JavaScript
1document.addEventListener("click", () => { 2 let theTree = woods[Math.floor(Math.random() * woods.length)]; 3 kareha = theTree.splice(Math.floor(Math.random() * theTree.length), 1)[0]; 4 5 console.log(kareha); 6 })
上記ではtheTreeから出す際にspliceしていますが、
結局、中身が空のtree1,tree2,tree3のいずれかが取り出されてしまいundefinedが出力されます。
かと言ってwoodsから取り出す際にspliceは使えませんでした。
何かいい方法はありますでしょうか?
補足情報(FW/ツールのバージョンなど)
コードの記入はVScodeを使用。
ブラウザはChromeを使用。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。