Javascript Array.filter()方法
作者:--
发布时间:2019-11-20
评论:0
阅读:1
javascript数组过filter()方法创建一个新的数组提供的函数来实现测试的所有元素。
语法
array.filter(callback[, thisobject]);
下面是参数的详细信息:
返回值:
返回所创建数组
兼容性:
这种方法是一个javascript扩展到ecma-262标准;因此它可能不存在在标准的其他实现。为了使它工作,你需要添加下面的脚本的顶部代码:
if (!array.prototype.filter)
{
array.prototype.filter = function(fun /*, thisp*/)
{
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]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
例子:
<html>
<head>
<title>javascript array filter method</title>
</head>
<body>
<script type="text/javascript">
if (!array.prototype.filter)
{
array.prototype.filter = function(fun /*, thisp*/)
{
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]; // in case fun mutates this
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.write("filtered value : " + filtered );
</script>
</body>
</html>
这将产生以下结果:
filtered value : 12,130,44