spliceの動作が理解できません

spliceの返り値は削除された要素を含む配列です。
2020年4月23日
ユーザー

spliceメソッドについて質問させてください。

  const nums = [0, 1, 2, 3];
  // console.log(nums);
  const num = nums.splice(Math.floor(Math.random() * nums.length), 1)[0];
  console.log(num);

このようなコードを書いた場合、配列の0番目がnumに代入されるとすると、0か1しか表示されないのではないかと考えました。

(spliceの第一引数に0が選ばれた場合、nums = [1, 2, 3] , num = 1
spliceの第一引数に1が選ばれた場合、nums = [0, 2, 3] , num = 0
 spliceの第一引数に2が選ばれた場合、nums = [0, 1, 3] , num = 0
 spliceの第一引数に3が選ばれた場合、nums = [0, 1, 2] , num = 0 )

ですが、consoleにはランダムに0から3までの数字が表示されます。
このロジックを解説いただけますか?

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?