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");
});
以上应用为上一篇的打印功能的实现,效果如下: