一个前端去重问题

上周五遇到的问题,一个表单页面需要填写一个表格,要求填写的每行的第一个单元格和第三个单元格不能同时相同,比如第一行的第一个单元格是"张三",第三个单元格是"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),就给出提示,程序结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值