jq数组元素的过滤筛选——grep()方法

grep()方法:

实例:

$(function () { 
	var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
	$( "div" ).text( arr.join( ", " ) );
	arr = jQuery.grep(arr, function( n, i ) {
		return ( n !== 5 && i > 4 );
	});
	$( "p" ).text( arr.join( ", " ) ); 
	arr = jQuery.grep(arr, function( a ) {
		return a !== 9;
	});
	$( "span" ).text( arr.join( ", " ) );
})
</script>

运行效果:


项目实战:

var record = grid.getSelectionModel().getSelection(); //选中所选行
var group = []; //定义空数组
$.each(record, function(index) {  //循环所选行记录record
	var lj = record[index].get("payList.payCustomerid")
		+record[index].get("payList.payDepartment")
		+record[index].get("payList.payReciever");  //拿到自定义的连接字符串lj,规则是结算单位+发运单位+收货单位
	if (group.indexOf(lj)<0) {     
		group.push(lj);          //将循环到的连接字符串放到group组中
		} 
								
	});
	var dayinc = '';  //定义空的html用于拼接
	$.each(group, function(item) {    //循环group组
	var key = group[item];  //获得数组中数据 
	var filterarray = $.grep(record,function(value){ 
            return key==value.get("payList.payCustomerid")
		+value.get("payList.payDepartment")
		+value.get("payList.payReciever");     //使用grep()方法,拼接组中的自定义连接字符串并返回
	});
	dayinc += '<div style="width:1000px;">';   //开始拼接html
	.
	.
	.
var gpayCount=0.0,gpayWeight=0.0,gpayTotal=0.0,gpayDedicated=0.0,
gpaySubtotal=0.0,gpayTrain=0.0,gpayTransport=0.0,gpaySummation=0.0;


$.each(filterarray, function(index) {	//循环group组中一下相同的信息(即:结算单位+发运单位+收货单位一致),则显示在同一个表格中
	dayinc+='<tr>';
	dayinc+='<td style="width:80px">'+filterarray[index].get("fayunDate")+'</td>';
	dayinc+='<td style="width:35px">'+filterarray[index].get("payList.payPihao")+'</td>';
	dayinc+='<td style="width:35px">'+filterarray[index].get("payList.payCount")+'</td>';
	dayinc+='<td style="width:70px">'+filterarray[index].get("payList.payWeight")+'</td>';
	dayinc+='<td style="width:70px">'+filterarray[index].get("payList.payCalorific")+'</td>';
	dayinc+='<td style="width:100px">'+filterarray[index].get("payList.payPrice")+'</td>';
	dayinc+='<td style="width:85px">'+filterarray[index].get("payList.payTotal")+'</td>';
	dayinc+='<td style="width:120px">'+filterarray[index].get("payList.payDedicated")+'</td>';
	dayinc+='<td style="width:100px">'+filterarray[index].get("payList.paySubtotal")+'</td>';
	dayinc+='<td style="width:120px">'+filterarray[index].get("payList.payTrain")+'</td>';
	dayinc+='<td style="width:100px">'+filterarray[index].get("payList.payTransport")+'</td>';
	dayinc+='<td style="width:110px">'+filterarray[index].get("payList.paySummation")+'</td>';
	dayinc+='</tr>';
	gpayCount += filterarray[index].get("payList.payCount");
	gpayWeight += filterarray[index].get("payList.payWeight");
	gpayTotal += filterarray[index].get("payList.payTotal");
	gpayDedicated += filterarray[index].get("payList.payDedicated");
	gpaySubtotal += filterarray[index].get("payList.paySubtotal");
	gpayTrain += filterarray[index].get("payList.payTrain");
	gpayTransport += filterarray[index].get("payList.payTransport");
	gpaySummation += filterarray[index].get("payList.paySummation");
});


    

以上应用为上一篇的打印功能的实现,效果如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值