文章用一个简单的实例来介绍了关于javascript filter()在数组中的用法,filter 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。
代码:
--------------------------------------------------------------------------------
| 代码如下 |
|
function isBigEnough(element, index, array) {
return (element >= 10);
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
|
// 12, 130, 44
结果:
--------------------------------------------------------------------------------
[12, 5, 8, 130, 44].filter(isBigEnough) : 12, 130, 44
完整实例
| 代码如下 |
|
|
<script language="JavaScript" type="text/javascript">
if(!Array.prototype.filter)
{
Array.prototype.filter=function(fun)
{
var len=this.length;
if(typeof fun!="function")
throw new TypeError();
var res=new Array();
var thisp=arguments[1];
for(var i=0;i<len;i++)
{if(i in this)
{var val=this[i];if(fun.call(thisp,val,i,this))
res.push(val);}}
return res;};}
function isBigEnough(element,index,array){return(element>=10);}
var filtered=[12,5,8,130,44].filter(isBigEnough);
document.writeln("[12, 5, 8, 130, 44].filter(isBigEnough) :<strong>");
document.writeln(filtered.join(", "));
document.writeln("</strong><br />");
</script>
|