0

世界で最も簡単なことだと思うかもしれませんが、必要のない複雑さを伴わない解決策や、理解できないアプローチを使用する解決策が見つかりません.

私は、配列内に 3 つの位置を持つ単一のオブジェクトの配列を持っています。スクリプトが実行されるたびに、問題のキューブが [1] に設定され、このキューブの前に新しいキューブが作成されて [2] に設定され、前のキューブがあれば、それが[0] に設定します。この結果、配列は常に更新され、プレーヤーによってアクティブ化されたキューブが配列の下にシフトする必要があります。[0] がデバッグ時に null を返し続けることを除いて、すべての点で問題なく動作します。

問題のキューブの前のキューブは既に [1] に設定されているため、コードの最初のステップはこれを [0] に変更することです。

objectList[0] = objectList[1];  // Demotes current object[1] to [0].

多くの人が独自の関数を作成し、 splice メソッドを使用して配列スペースの不足を回避していることは理解していますが、この種の複雑さは本当に必要ありません。位置 [1] のオブジェクトを位置 [0] に設定するだけです。API などで単純なキーワードが欠落していないことを願っています。

4

1 に答える 1

3

一番前の項目を削除し、配列を「再インデックス」しようとしているだけだと思います。そのため、インデックス 1 にあったものはインデックス 0 になりました。その場合は、array.shift. 一番前の項目を削除します。

var items = [1,2,3]

alert(items[0]); // 1

items.shift()

alert(items[0]); // 2

items.shift()

alert(items[0]); // 3
于 2013-05-14T19:54:02.260 に答える