问题描述:
假设一个数组包含了一些名字,只需看到长度大于4 的或者以字母A到D任何字符打头的名字。
解决方法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>删选数组元素,只显示所需的数据</title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var members1 = ["John", "Steve", "ben", "Damon", "Lan"];
$("#p1").html(members1.join("<br/>"));
members1 = $.grep(members1, function (v) {
return v.length > 4;
});
$("#p2").html(members1.join("<br/>"));
var members2 = ["John", "Steve", "Ben", "Damon", "Lan"];
members2 = $.grep(members2, function (w) {
return w.match(/^[A-D]/);
});
$("#p3").html(members2.join("<br/>"));
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>显示所有的数组元素</h3>
<p id="p1"></p>
<h3>显示长度大于4 的数组元素</h3>
<p id="p2"></p>
<h3>显示以字母A-D之间任何字符打头的数组元素</h3>
<p id="p3"></p>
</div>
</form>
</body>
</html>
效果图:
方法解释:
1、grep()方法对数组元素进行筛选。这个方法分析数组中的所有元素,为每个元素分别调用回调函数。在回调函数中我们把不需要的元素过滤了。其语法如下:
grep(array,callback,boolean)
grep()方法的参数如下:
array是原始数组,grep()方法对原始数组进行筛选;
callback是回调函数,执行筛选任务,返回过滤后数组的值。回调函数有两个参数,第一一个是数组元素,第二个是索引值。
boolean通常省略。默认值未false。如果设置为true,那么回调函数的运算则是逆向的,即返回的与回调函数中提供的条件语句不匹配的值。
2、match()方法来定义正则表达式。