2010-11-30 8 views

答えて

25

、配列を受け入れるVector.<TYPE>()機能を使用して作成したベクトルが返されます:あなたは、各オーバーループをしなければならないので、何の組み込み関数が存在しない他の場合

var aObjects:Array = [{a:'1'}, {b:'2'}, {c:'3'}]; 
// use Vector function 
var vObjects:Vector.<Object> = Vector.<Object>(aObjects); 

Vectorアイテムを入力し、Array

0

var myArray:Array = [] .concat(myVector);

が動作する可能性があります。

+0

'myVector'は' concat() 'が期待しているので' myVector'は 'Array'ではないので、うまくいきません。 – Tox

1
vObjects.push.apply(null, aObjects); 

また別の方法です。

ここのトリックは簡単です。 concat()メソッドを使用して配列をベクトルにロードしようとすると、入力がベクトルなので失敗し、ベクトル要素を追加する代わりに、ベクトル全体が1つのエントリとして追加されます。 push()を使用する場合は、配列内のすべてのアイテムを1つずつ追加して追加する必要があります。

は、ActionScriptでは、すべての機能は、次の3つの方法で呼び出すことができます。

  • 通常の方法:aObjectsObjectしかしArrayではないのでvObjects.push(aObjects)

    がエラーをスローします。

  • call方法:我々は関数に渡すことができコンマ区切りのリストにaObjects配列を分割することはできませんのでvObjects.push.call(this, myObject1, myObject2, ..., myObjectN)

    が私たちを助けていません。

  • apply方法:vObjects.push.apply(this, aObjects)

    喜ん入力として配列を受け入れ、ベクターにその要素を追加するように、このルートを行きます。配列の要素タイプとベクトルが一致しない場合でも、ランタイムエラーが発生します。最初のパラメータに注意してください:関数を実行するときに有効範囲をthisに定義します。ほとんどの場合nullは問題ありませんが、関数のthisキーワードを使用してnull以外を渡す必要があります。

+0

答えを編集して、表示しているコードが何をしているのか、そのコードが質問に答える理由/方法を説明してください。本当に役立つでしょう。 –

関連する問題