用JavaScript实现数据去重
前言
经过了本周在逆战班的学习,我对JavaScript有了进一步的认识,数组的引入使得JavaScript与HTML有了一定的结合。通过循环读取数组并写入HTML,我们可以按照自己的需求构建自己期望的表格。但在某些时候,由于一些人为或非人为的原因使得数组中出现了重复数据,这将不利于我们其他工作的展开。如何有效地去除数组中的重复数据,我对自己所学的两种办法进行了归纳。
利用indexOf去重
利用indexOf去重的原理可以简单地理解为:将老数组中的内容向新数组中拷贝,在拷贝每一个数据前先判断该数据是否存在于新数组中,若不存在则执行拷贝。在拷贝结束后,再将新数组赋值给老数组,即完成了引用数据类型的地址的拷贝,最终实现了数组去重。
利用indexOf去重的JS代码如下:
var arr = [1,1,1,2,2,3,4,5,6];
var arr2 = [];
arr.forEach(function(val,i,arr){
console.log(arr[i]);
if(arr2.indexOf(arr[i]) == '-1'){
arr2.push(arr[i]);
}
})
arr = arr2;
console.log(arr); //打印结果是 [1, 2, 3, 4, 5, 6]
利用splice去重
利用splice去重的做法可以大致理解为:将数组中的每一个数据与之后的数据进行对比,如果在它之后的数据中存在相同数据,则删除那个重复的数据。JS代码如下:
var arr = [1,1,1,2,2,3,4,5,6],length = arr.length;
for(var i=0; i<length; i++){
for(var j=i+1; j<length; j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
console.log(arr); //打印结果是 [1, 2, 3, 4, 5, 6]
结语
除了这两种去重的方法外,网友还给出了其他的去重方法,但由于我对于JS的学习程度较浅,尚不理解,在此将链接分享给大家,并为我以后的学习提供储备,待学习了更多内容之后再来细心钻研。
分享链接: JavaScript的12种去重方法