一个前端去重问题
上周五遇到的问题,一个表单页面需要填写一个表格,要求填写的每行的第一个单元格和第三个单元格不能同时相同,比如第一行的第一个单元格是"张三",第三个单元格是"12",那么后面的行不能再出现同样的第一格叫"张三",第三格是"12"的,出现了就弹窗给出相应的提示。看了源代码,在submit之前触发校验方法,已经将表格转换成二维数组。var tarr = [[1,2,4],[3,4,6],[1,4
·
上周五遇到的问题,一个表单页面需要填写一个表格,要求填写的每行的第一个单元格和第三个单元格不能同时相同,比如第一行的第一个单元格是"张三",第三个单元格是"12",那么后面的行不能再出现同样的第一格叫"张三",第三格是"12"的,出现了就弹窗给出相应的提示。
看了源代码,在submit之前触发校验方法,已经将表格转换成二维数组。
接下来加一段校验代码,大致如下:
var tarr = [[1,2,4],[3,4,6],[1,4,4]];
var checkValue = function(tarr){
var map = new Map();
for(var i = 0;i < tarr.length;++i){
if(typeof map.get(tarr[i][0]+""+tarr[i][2]) != 'undefined'){
console.log("Repeated elements found!");
return;
}
map.set(tarr[i][0]+""+tarr[i][2],i);
}
}
checkValue(tarr);
思路就是用map存每行的第一和第三个单元格作为key,value任意,只要不是undefined。每次遍历二维数组时会先去尝试获取第一格和第三格拼接的字符串,获取到(不是undefined),就给出提示,程序结束
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)