Tôi không thể làm cho hàm map() hoạt động hoàn toàn với lớp Vector.Bản đồ Vector() hoạt động như thế nào trong ActionScript 3?
Kết quả luôn quay trở lại null - nó sẽ trả lại cho tôi một vectơ mới với các giá trị được hàm trả về trả về (ví dụ này rõ ràng không phải là usecase thực của chúng tôi).
Phiên bản mảng hoạt động như mong đợi.
Có ai có may mắn lấy bản đồ() để làm việc với Vector không?
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;
}
Đã xác nhận: Vector phiên bản 1 không bị thay đổi bởi hàm map(). – Stray
Đã xác nhận: Vượt qua một trong hai hoặc bản thân lớp thử nghiệm làm đối tượng 'this' (tham số tùy chọn thứ hai để sử dụng khi có tham chiếu này trong hàm) không có sự khác biệt. – Stray
Đã xác nhận: Làm cho hàm addFive cục bộ thành mã chạy bản đồ cũng không tạo ra bất kỳ sự khác biệt nào. – Stray