数组去重在实际运用中是经常会使用到的一个技巧,下面是两种不同的实现方法:
// 数组去重一:
function fun1 () {
// 定义数组存储带去重数据
var arr = [1,1,1,3,4,3,4,6,8,3,1,2];
document.writeln(arr + "<br>" );
// 定义一个hash数组去除重复的元素,res数组存储出去重复元素后的新数组
for(var i = 0, hash = [], res = []; i < arr.length; i++){
// 判断hash数组中是否已存在该下标的值
if(hash[arr[i]] === undefined){
res[res.length] = arr[i];
hash[arr[i]] = true;
}
}
document.writeln("方法一:" + res + "<br>");
}
fun1();
// 数组去重二:
function fun2(){
// 定义数组存储带去重数据
var arr = [1,1,1,3,4,3,4,6,8,3,1,2];
// 定义一个新数组存储去重后的数据
var res = [];
// 外层循环控制arr数组元素进入内层循环校验
for(var i = 0; i < arr.length; i ++){
// 内层循环便利比较与arr数组元素的值
for(var j = 0; j < res.length; j++){
// 判断若出现于res相同的arr元素则跳出当前内层循环
if(res[j] == arr[i])
break;
}
// 内层循环结束未出现重复的 即可给新数组res赋值arr的元素
if(res.length == j)
res[res.length] = arr[i];
}
document.writeln("方法二:" + res);
}
fun2();
效果显示:

本文介绍并展示了两种常见的数组去重技巧。方法一利用hash数组存储元素,避免重复;方法二通过双层循环检查元素唯一性。两种方法各有优劣,适用于不同场景。
881

被折叠的 条评论
为什么被折叠?



