数组去重-前端-阿习进阶博客
Java
MySQL
大数据
Python
前端
黑科技
    首页 >> 互联网 >> 前端

数组去重

[导读]:1.第一种方式就是最简单的set去重vararr=[1,2,2,4,3,4,1,3,2,7,5,6,1]varnewArr=newSet(arr)2.第二种方式就是用indexOf来去重判断新数组中某个数字是否存在functionfn(arr){letnewArr=[]arr.forEach((val)=>{if(new...

1.第一种方式就是最简单的set去重  

var arr = [1,2,2,4,3,4,1,3,2,7,5,6,1]
var newArr = new Set(arr)

image.png

如果出现这样的 是因为你少加了Array.from

Array.from

var arr = [1,2,2,4,3,4,1,3,2,7,5,6,1]
var newArr = Array.from(new Set(arr))

2.第二种方式就是用indexOf来去重

判断新数组中某个数字是否存在

function fn(arr){
 let newArr = []
 arr.forEach((val)=>{
  if(newArr.indexOf(val) == -1){
    newArr.push(val)
   }
  })    
  return newArr  
}    
function fn(arr) {
  return arr.filter((item, index, arr) => arr.indexOf(item) === index)
}

3.第三种方式普通去重

for(var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;j++){
         if(arr[i]==arr[j]){
              arr.splice(j,1)
         }
    }
}

4.键值去重

根据键值是唯一的来去重

function fn(arr){
     let arr1 = [],
         arr2 = []
     arr.forEach((val)=>{
         arr1[val]=val
     })
     //arr1数组会存在空的情况
     //所以返回arr2
     arr1.forEach((val)=>{
        if(!!val){
            arr2.push(val)
        }
     })
     return arr2
}

5.sort排序后去重  sort 这里只是简单1234排序 复杂排序看这一篇 

只比set复杂度低    eslint  != 改为  !==

function fn(arr){
   let newArr = []
   arr.sort((a,b)=>{
       return a-b
   })
   arr.forEach((val,index)=>{
       if(val != arr[index+1]){
            newArr.push(val)
       }
   })
   return newArr
}

image.png


本文来自阿习进阶博客,如若转载,请注明出处:http://yanxias.com

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

联系人:阿习

手机号:156****7890

留言内容:欢迎大家一起讨论文章,有喜欢发帖的可以私聊我给你开权限,发文章

留言时间:2022-05-09 17:46:15

回复内容:互联网阿习

回复时间:2022-05-09 17:46:15

用户IP:220.***.***.232

用户操作系统:Windows 10

欢迎加Easy的QQ