400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > web前端 > 【Web前端基础知识】数组去重的方法

【Web前端基础知识】数组去重的方法

无论是在面试还是实际写代码中都会经常遇到数组去重,那接下来我们介绍几种数组去重的方法。

  1. var arr = [3,6,4,1,8,8,8,8,8,4,0,9,2,7,8,5,3,4,8,9,3]; 

1,第一种是声明一个空数组,通过indexOf( )查找的方法,判断这个新数组中有没有该元素,如果没有即查找结果为 -1 时,将这个元素添加到新数组的末尾。

js代码为:

  1. //1.创建一个空数组,把arr里面的元素往空对象中添加,判断如果空数组没有这个元素,加 
  2.        var array = []; 
  3.        for( var i = 0; i<arr.length; i++ ) { 
  4.            if( array.indexOf(arr[i]) == -1 ) { 
  5.                array.push( arr[i] ); 
  6.            } 
  7.        } 
  8.         console.log(array); 

2,第二种是操作数组自身:

从第一项开始,拿该项和后面的所有项作比较,如果后面有和比较项相等的,就把后面的一项删除。删除的方法会改变当前数组的长度,后面的元素会自动往前挪,所以补位上来的元素需要在进行一次比较,让下标进行自减操作。

比较的详细过程即是为:

拿数组中第一个元素,和后面所有的元素进行比较,如果一样删除后面哪一个

拿数组中第二个元素,和后面所有的元素进行比较,如果一样删除后面哪一个

...

数组中所有的元素后需要和后面的进行比较,所以需要进行for循环的嵌套

代码为:

  1. for(var i = 0; i<arr.length; i++) { 
  2.             //和后面所有的元素进行比较 
  3.             for(var j = i+1; j<arr.length; j++) { 
  4.                 if( arr[i] == arr[j] ){ //重复,删除后面的元素 
  5.                     arr.splice(j,1); 
  6.                     j--;  
  7. //删除一个元素后元素位置会自动往前挪,下标也需要往前j-- 
  8.                 } 
  9.             } 
  10.         } 
  11.         console.log(arr); 

3,先使用sort()方法对数组进行排序,再比较看数组是否和相邻的项相等,如果不同则存入新数组中

  1. // 先对数组进行sort排序 
  2.  var sortArr = arr.sort(); 
  3. // 初始化结果数组并存一个值 
  4.             var res = [sortArr[0]]; 
  5. // 循环遍历数组进行比较 
  6.             for (var i = 1; i < sortArr.length; i++) { 
  7. // 如果当前的比较项与结果数组的最后一项不相等则放入 
  8.                 if (sortArr[i] !== res[res.length - 1]) { 
  9.                     res.push(sortArr[i]); 
  10.                 } 
  11.             } 
  12.             console.log(res); 

 

学习疑问申请解答
您的姓名
您的电话
意向课程
 

中公优就业

IT小助手

扫描上方二维码添加好友,请备注:599,享学习福利。

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

测一测
你适合学哪门IT技术?

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
 
课程资料,活动优惠 领取通道
 
 
Baidu