去重原理
目前有数组 [2,3,4,4,3,3,0,12,4,89]
去重的原理是,做两层循环,第一层依次检测数组元素,第二层从第一层的元素后开始,并检测后面的元素是否和第一层的元素重合,如果后面的所有元素都和这个元素不同,则这个元素在此数组中是唯一的。
比如,以此数组中第一个元素“2”为例,第二层循环从它后面的“3”开始检测,3与2不同,继续下一个,是4,也与2不同,继续下一个,如此检测,直到数组的最后一个元素“89”,都与2不同,则说明“2”在此数组中是唯一的元素,将其添加到一个临时数组中。
然后,第一层元素开始从原始数组的第二元素“3”开始检测,而第二层循环从“3”后面的元素“4”开始检测,后面会检测到有相同的元素“3”,则说明“3”这个元素在此数组中有重合,跳过这个第一层的这个元素的检测,第一层从下一个元素“4”开始。
代码
var arr=[2,3,4,4,3,3,0,12,4,89];
console.log(arr);
var arrNew=[]; //临时数组,用于存放在原始数组中找到的唯一元素
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){ //第二层元素的检测从i+1开始
if(arr[i]==arr[j]){
j=++i; //如果发现元素相同,则跳过元素,开始下一个元素的检测
}
}
arrNew.push(arr[i]); //如果在第二层中没有发现相同元素,则程序会跑到这一条,arr[i]添加到临时数组中
}
console.log(arrNew);
//新数组:[2, 3, 0, 12, 4, 89] 注意元素的添加顺序,就理解了去重机制