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
}
需要注意的是:
回调函数必须要有三个参数,第一个就是数组中的元数据,其他两个只是定义了而已。
as3 Array类的filter()方法的用法,布布扣,bubuko.com
原文:http://www.cnblogs.com/chinayfhuang/p/3604942.html