2017-10-23 15 views
0

その項目のインデックス値が静的ではないため、インデックスではなく配列から特定の要素を削除したいと考えています。AS3で配列から特定の要素を名前で削除する

myarray.splice(myclip, 1); 

このコードを使用すると、フラッシュでは配列の最初の要素が削除されます。 ここには何かがありますか?

+1

[ドキュメント](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#splice())を読んだことがありますか?両方のパラメータは整数でなければなりません。最初の要素は削除する要素の**位置**です。もう1つは削除する要素の量です。 'myarray.splice(myarray.indexOf(myclip)、1);'あなたのスニペットの最初の要素だけを削除する理由がわからない、おそらく内部的に 'myclip'を0にキャストしますか?関係ないです、 'indexOf'を使ってください。それが動作しない場合は、最初に位置を取得する配列をループします。 – DodgerThud

+0

はうまく動作しますので、回答として追加して回答することができます – Koden

答えて

2

Documentation of splice()

両方のパラメータは整数である必要があり、最初のものは削除したい要素の位置であり、2つ目は、削除したい元素の量です。お試しくださいmyarray.splice(myarray.indexOf(myclip),1);

スニペットの最初の要素のみが削除される理由はわかりませんが、おそらく内部的にはmyclipが0にキャストされますか?問題ではありません。indexOfを使用してください。それが動作しない場合は、最初に位置を取得する配列をループします。

+0

myarray.indexOf(myclip)を使用すると、名前で要素を選択してスプライスの番号に変換できます – Koden

+1

単一の要素を削除することができますその 'myarray.removeAt(myarray.indexOf(myclip));'はより簡潔です。 – BadFeelingAboutThis

+0

私が使用しているバージョンでは動作しないようです – Koden

関連する問題