zoukankan      html  css  js  c++  java
  • js数组去重

    一,使用嵌套循环,改变原数组

        var arr = [1,5,1,1,5,6,7,9]
        for(var i=0;i<arr.length-1;i++){
          for(var j=i+1;j<arr.length;j++){
              if(arr[j]==arr[i]){
                arr.splice(j,1)
                j--;
              }
          }
        }
        console.log(arr)

    二,创建新数组,判断新数组中是否存在该值indexOf

        var arr = [5,2,5,2,2,0]
        var arrNew = []
        for(var i=0;i<arr.length;i++){
          if(arrNew.indexOf(arr[i])<0){
            arrNew.push(arr[i])
          }
        }
        console.log(arrNew)

    三,创建新数组,利用对象记录判断新数组中是否存在该值(改动此方法后也可获得数组中每个元素出现的次数)

        var arr = [5,2,5,2,2,0]
        var arrOb = {},arrNew=[]
        for(var i=0;i<arr.length;i++){
          var el = arr[i]
          if(!arrOb[el]){
            arrOb[el] = true
            arrNew.push(el)
          }
        }
        console.log(arrNew)

    四,比较数组元素的下标和第一次出现的位置

        var arr = [5,2,5,2,2,0]
        for(var i=0;i<arr.length;i++){
           if(arr.indexOf(arr[i])!=i){
             arr.splice(i,1)
             i--
           }
        }
        console.log(arr)

    五,利用filter

        var arr = [5,2,5,2,2,0]
        var as=arr.filter((item,index,ar)=>{
          if(ar.indexOf(item) == index){
              return ar
          }
    
        })
        console.log(as)

    六,ES6 new Set()自动去重,返回类数组,然后使用Array.from转化成数组

    var arr = [5,2,5,2,2,0]
        var arrN = new Set(arr)
        console.log(Array.from(arrN))
  • 相关阅读:
    input输入密码变黑点密文
    清除浮动的几种方法
    const let,console.log('a',a)跟console.log('a'+a)的区别
    Egret Wiing3快捷键
    时间转换成2016/12/29 14:23:09格式
    http status code
    构造函数模式
    Log4net
    Autofac
    WebApi返回Json格式字符串
  • 原文地址:https://www.cnblogs.com/sunala/p/9877756.html
Copyright © 2011-2022 走看看