对多个对象,需要按照对象中的某个属性去重复,最后返回自己所需。
本例是返回下角表。通过选中datagrid中registid进行去重,然后再返回这个该数据所在的下表,然后选中datagrid。
//号别日排班全选
function onCheckAll(rowData){
//对数组进行去重并返回其下角标
Array.prototype.filter = function(){
for(var i=0, temp={}, index=[], ci; ci=this[i++];){
if(temp[ci])
continue;
temp[ci] = true;
index.push(i);
}
return index;
};
//将所有registid放在一个数组中进行
var arrList = new Array();
for(var i=0; i<rowData.length; i++){
arrList.push(rowData[i].registid);
}
// var arrList = ["A", "B", "B", "C", "A", "X"];
if(rowData.length != arrList.filter().length){
$CommonUI.getDataGrid('regDg').datagrid('uncheckAll');
$('input[type="checkbox"]').attr("checked",false);
for(var i=0; i<arrList.filter().length; i++){
$CommonUI.getDataGrid('regDg').datagrid('selectRow', Number(arrList.filter()[i])-Number(1));
}
$CommonUI.alert("未选中数据是重复号别!");
}
}