私は2つの配列を持つjavascriptプロジェクトに取り組んでいます1.要素2.要素オーダー; elementsOrder 配列には各要素の名前が含まれ、要素配列には各要素のすべてのプロパティが含まれます。各配列から1つの要素を削除したい場合は、「delete」ビルドイン関数を使用しますが、要素を削除せずに未定義に設定するだけなので、スプライスメソッドを使用して未定義の要素を押し出しますが、そうではありません動作しません。
これはソースです:
var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];
それは仕事をし、要素を1つずつ「未定義」にスムーズに設定しますが、私がそうすると:
var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);
単に splice メソッドを使用しても機能しません。
var s1 = elementsOrder.indexOf(id);
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);
私は Javascript Canvas プロジェクトでこのコードを使用して、いくつかのキャンバス オブジェクトをアニメーション化します。そのため、「削除」がスムーズに機能し、要素を 1 つずつ「定義解除」し、スプライスがスムーズに機能せず、配置しない場合を簡単に確認できます。要素を 1 つずつ取り出す
http://jsfiddle.net/7ZuuZ/を参照してください。下から 3 番目の関数である関数 animate に注意してください。