【週刊ドットインストール】 学習ロードマップにPHP/Laravelを追加、最近のAI使いこなしTips
「詳解JavaScript オブジェクト編 #05 splice()で配列を変更してみよう」で、 spliceの使い方は以下のように解説がありました。
splice(変化が開始する位置, 削除数, 追加する要素, ...)
これを、本レッスンで使われているコード
const nums = [0, 1, 2, 3]; const num = nums.splice(Math.floor(Math.random() * nums.length), 1)[0];
に当てはめると、
splice(ランダムな位置から, 要素を1つ削除し)[削除後の配列の先頭の要素(を取り出す)] という意味になるかと思います。
その場合、以下のように、0か1にしかなり得ないと思いますが、 取り出す数値がそれ以外にもなり得て、かつ、重複しないのはなぜでしょうか?
例)0が削除された場合 →[1, 2, 3]の先頭 = 1 1 or 2 or 3が削除された場合 →[0, 2, 3][0, 1, 3][0, 1, 2]の先頭 = 0
また、配列の要素が削除される度に、要素の数が減る(=重複しない)としても、 「0」が削除されない限り、先頭の要素は常に「0」になってしまいますが、 そうならないのはなぜでしょうか?
例)(1) 1が削除 → [0, 2, 3]の先頭 = 0 (2) 3が削除 → [0, 2]の先頭 = 0 (3) 2が削除 → [0]の先頭 = 0
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
「詳解JavaScript オブジェクト編 #05 splice()で配列を変更してみよう」で、
spliceの使い方は以下のように解説がありました。
これを、本レッスンで使われているコード
に当てはめると、
splice(ランダムな位置から, 要素を1つ削除し)[削除後の配列の先頭の要素(を取り出す)]
という意味になるかと思います。
その場合、以下のように、0か1にしかなり得ないと思いますが、
取り出す数値がそれ以外にもなり得て、かつ、重複しないのはなぜでしょうか?
例)0が削除された場合 →[1, 2, 3]の先頭 = 1
1 or 2 or 3が削除された場合 →[0, 2, 3][0, 1, 3][0, 1, 2]の先頭 = 0
また、配列の要素が削除される度に、要素の数が減る(=重複しない)としても、
「0」が削除されない限り、先頭の要素は常に「0」になってしまいますが、
そうならないのはなぜでしょうか?
例)(1) 1が削除 → [0, 2, 3]の先頭 = 0
(2) 3が削除 → [0, 2]の先頭 = 0
(3) 2が削除 → [0]の先頭 = 0