Str*_*ray 8 apache-flex flash actionscript-3
我无法使用Vector类使map()函数完全正常工作.
结果总是返回null - 它应该返回一个带有addFive函数返回值的新向量(这个例子显然不是我真正的用例).
阵列版本按预期工作.
有没有人有幸得到map()与Vector合作?
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;
}
Run Code Online (Sandbox Code Playgroud)
小智 8
这是一个actionscript/flash播放器错误.似乎adobe已在内部修复它,但从Flash Player 10.1开始,该修复程序尚未发布.
请参阅:https: //bugzilla.mozilla.org/show_bug.cgi?id = 513095
这是我们在这里发现的bug的根本原因:
https://bugzilla.mozilla.org/show_bug.cgi?id=507501
你现在可以做的最好的事情就是在需要Map时坚持使用Arrays