JavaScript数组去重方法

去重原理

目前有数组 [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]   注意元素的添加顺序,就理解了去重机制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值