map()関数をVectorクラスで動作させることができません。ベクトルマップ()は、アクションスクリプト3でどのように動作しますか?
結果は常にnullに戻ります - addFive関数によって返された値を持つ新しいベクトルが返されるはずです(この例は明らかに私の実際の使用法ではありません)。
アレイのバージョンが期待通りに機能します。
ベクターを使用するためにmap()を取得する運があった人はいますか?
public function test_vector_map():void {
var v1:Vector.<uint> = new <uint>[1,2,3];
trace(v1); // traces 1,2,3
var v2:Vector.<uint> = v1.map(addFive);
trace(v2); // traces null
}
protected function addFive(item:uint, index:int, vector:Vector.<uint>):uint
{
return item+5;
}
public function test_array_map():void {
var v1:Array = [1,2,3];
trace(v1); // traces 1,2,3
var v2:Array = v1.map(addSix);
trace(v2); // traces 7,8,9
}
protected function addSix(item:uint, index:int, array:Array):uint
{
return item+6;
}
確認済み:v1ベクターはmap()関数によって変更されていません。 – Stray
確認済み:v1またはテストクラスそのものを 'this'オブジェクト(関数内にこの参照がある場合に使用する2番目のオプションパラメータ)として渡しても違いはありません。 – Stray
確認済み:addFive関数をマップを実行するコードに対してローカルにしても、違いはありません。 – Stray