/*****************************
Array.js 数组原型扩展
--------------------------------------
Author : CNLei, 枫岩
E-Mail : CNLei.Y.L@Gmail.com
MySite : http://www.cnlei.com
Update : 2008-5-19
*****************************/
Array.prototype.each = function(f,r){//(function,reverse) reverse=-1 逆向执行
	if(r===-1){
		for(var i=this.length-1;i>=0;i--)f(this[i],i);
	}else{
		for(var i=0,l=this.length;i<l;i++)f(this[i],i);
	}
};
Array.prototype.indexOf = function(v,b){//简化
    var idx=-1;
	if(b===true && typeof(v)=="function"){//b:true,并且v为函数名时,表示利用v进行处理函数返回true/false
		for (var i=0,l=this.length;i<l;i++) {
			if(v(this[i])){idx=i; break;}
		}
	} else {
		for (var i=0,l=this.length;i<l;i++) {
			if(this[i]===v){idx=i; break;}
		}
	}
	return idx;
};
Array.prototype.lastIndexOf = function(v,b){//简化
    var idx=-1;
	if(b===true && typeof(v)=="function"){//b:true,并且v为函数名时,表示利用v进行处理函数返回true/false
		for (var i=this.length-1;i>=0;i--) {
			if(v(this[i])){idx=i; break;}
		}
	} else {
		for (var i=this.length-1;i>=0;i--) {
			if(this[i]===v){idx=i; break;}
		}
	}
	return idx;
};
Array.prototype.remove	= function(f){//删除符合要求的元素,数组本身在变,f为删除条件
	var ME=this;
	if(typeof(f)=="function"){
		ME.each(function(s,i){
			if(f(s,i))ME.splice(i,1);
		},-1);
	}
	return ME;
};