纯js对根据table中的两个字段对table进行去重操作(精华版)
2017-11-21 11:53
501 查看
var tdusername = new Array();//用来存放姓名,并且最终冒泡排序的数组; var tdusername2 = new Array();//用来存放列表中固定顺序的姓名数组; var buffer = new StringBuffer(); function autoRowSpan(tb,row,col) { var lastValue=""; var lastUsername=""; var value=""; var username=""; var pos=1; for(var i=row;i<tb.rows.length;i++){ //排除第二行 if(i==1){ continue; }else{ value = tb.rows[i].cells[col].innerText; // 确定第i行第一列的数据---课程名称 username = tb.rows[i].cells[col+2].innerText;//确定第i行第三列的数据----学生姓名 //usernameAndIndex = buffer.append(username).append(i.toString()).toString();//将姓名和它对应的行数组合称为字符串放入数组中 tdusername.push(username); tdusername2.push(username); if(lastValue == value){ tb.rows[i].deleteCell(col); //删除指定的单元格 tb.rows[i-pos].cells[col].rowSpan = tb.rows[i-pos].cells[col].rowSpan+1; //合并单元格 //tb.deleteRow(i);//删除指定的行 pos++; }else{ lastValue = value; pos=1; } } } //遍历数组 var nary = tdusername.sort();//冒泡排序的最直接方法 var rename = ""; var index1 = ""; var index2 = "";
var temp =new Array();//中间数组专门用来存放两个相同姓名出现的索引位置 alert(nary); alert(tdusername); alert(tdusername2); for(var j=0;j<tdusername.length;j++){ if (nary[j]==nary[j+1]){//发现重复值,然后根据索引确定对应得课程是否重复,如果重复,则删除这行 rename = nary[j];//重复的内容 alert(nary[j]); for(var m=0;m<tdusername2.length;m++){ if(rename==tdusername2[m]){//数组中第一次出现重复值得到其索引位置 temp.push(m); } for(var n=1;n<temp.length;n++){//循环临时数组,拿第一条和接下来每条比较,如果相同,删除table中的一行数据 var firstcourse = tb.rows[temp[0]].cells[0].innerText;//第一条课程数据 var othercourse = tb.rows[temp ].cells[0].innerText;//其他课程数据 alert(firstcourse); alert(othercourse); if(firstcourse==othercourse){ tb.deleteRow(temp ); } } } } } }
这是本次操作后的列表:根据课程和姓名同时相等去重
这是操作前的列表:
注:若有需要并且看不懂的可以给我留言!
相关文章推荐
- Node.js使用orm2进行update操作时关联字段无法修改的解决方法
- js数组排序,根据数组中对象的某一属性进行排序 支持数字和字符串的排序,也支持按两个属性进行排序
- 如何编写一条SQL实现根据某个字段的条件对某个字段进行不同的update操作
- js进行操作table隐藏与显示查询
- 在同一张表中根据两个父子关系的字段进行递归的层级计算
- 用coredata碰上需要根据两个字段的和进行排序
- 将两个List根据某个相同字段来进行合并,排序
- js:制作一个简易的计数器:根据输入的两个整数和运算符,进行计算,然后输出计算结果
- 根据两个字段进行统计
- js换图片效果可进行定时操作
- 批处理应用:根据文件内容进行重命名操作
- Java获取当前时间,两个时间进行比较和相减操作
- Node.js 连接 MySQL 并进行数据库操作
- HTML中的<table>标签及其子元素标签,JS中DOM对<table>的操作
- JS对iframe父子(内外)页面进行操作的方法 3ff0
- [SQL]根据刚刚插入数据的 ID 向另外一张表插入数据(插入的其他字段数据需要对字符串进行分析)
- 根据输入list来初始化table(js实现)
- js操作时间--比较两个时间大小,时间间隔的计算
- 基于JavaScript实现Json数据根据某个字段进行排序
- 根据value字段对map进行排序