as3 Array类的filter()方法的用法

filter()方法是Array类的一个方法,作用是对数组中的每一项执行一个回调函数,该方法需要两个参数,第一个callback就是回调函数,第二个参数thisObject 在官方API中注明必须为null,用作回调函数的this对象。

该方法返回的是一个执行了回调函数的新数组。

在函数有比较复杂的操作时,回调函数必须有三个参数,即项值,项索引和Array对象。

例如:

有个简单的Node类:

package com.graph
{
    /**
     * ...
     * @author me
     */
    public class Node
    {
        private var _name:String;
        
        public function Node(name:String)
        {
            this._name = name;
        }
        
        public function get name():String
        {
            return _name;
        }
        
        public function set name(value:String):void
        {
            _name = value;
        }
        
        public function toString():String
        {
            return _name;
        }
        
    }

}

 

/**

 *过滤一个数组中不符合条件的Node:

*/

private function filterArray(array:Array):Array
        {
            return array.filter(function(node:com.graph.Node, index:int, list:Array):Boolean
            {
                return node.name != "111";
            });
        }

 

/**

*测试

*/

private function test():void

{

    var arr:Array = [new com.graph.Node("32323"), new com.graph.Node("22323"), new com.graph.Node("111")];
            var newArr:Array = filterArray(arr);
            trace(newArr.join("-"));   //输出  32323-22323

}

 

需要注意的是:

    回调函数必须要有三个参数,第一个就是数组中的元数据,其他两个只是定义了而已。

posted @ 2014-03-17 14:06  chinayfhuang  阅读(322)  评论(0编辑  收藏  举报