JSに新しく、現在大学で学んでいます。私の現在のJSプロジェクトでは、メモリカードゲームを構築しています。私はカードをランダムにシャッフルする方法を考え始めました.Fisher-Yates Shuffleのアルゴリズムが行っていることに似ています。つまり、this pageの2番目のプログラムです。しかし、私はspliceメソッドの後に[0]が何をするのかを正確に理解していません。それは配列をシフト/コンパクトするのでしょうか?はいの場合、私はそれに関する他の例/文書を見つけることができません。Fisher-Yates Shuffle in Javascript
function shuffle(array) {
var copy = [], n = array.length, i;
// While there remain elements to shuffle…
while (n) {
// Pick a remaining element…
i = Math.floor(Math.random() * n--);
// And move it to the new array.
copy.push(array.splice(i, 1)[0]);
}
return copy;
}
ありがとう@Amadan! – Ludo757
だから私はそれにもっと考えました。スプライスの範囲が '(i、1)'なので、配列から一つの要素を取り除くだけで、 '[0]'は冗長であるということです。 – Ludo757
'splice'は配列を返します。 'push'は単一の値を要求します。 1要素配列は、その要素と同じものではありません。それはあなたのミキサーにトマトを入れたメッシュバッグを入れようとするようなものです。「まあ、私はこのソース用にトマトが1つ必要です。バッグには1つのトマトしか残っていないので、なぜですか?それらのプラスチックのメッシュ繊維は噛んだ側に少しあるので、あなたは最初にバッグからトマトを取る必要があります。 – Amadan