Vector map()如何在actionscript 3中运行?

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

  • 谢谢你找到了我 - 至少我不会疯了. (2认同)