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 Vector는 map() 함수에 의해 변경되지 않습니다. – Stray
확인 됨 : v1 또는 테스트 클래스 자체를 'this'객체 (함수에이 참조가있는 경우 사용하기위한 두 번째 선택적 매개 변수)로 전달하면 아무런 차이가 없습니다. – Stray
확인 :지도를 실행하는 코드의 로컬 addFive 함수를 변경해도 아무런 차이가 없습니다. – Stray