zoukankan      html  css  js  c++  java
  • JavaScript数组去重方法总结

    一、双重遍历去重

    function onlyFigure(arr) {
          let newarr = [];
          const length = arr.length
          for (let i = 0; i < length; i++) {
            for(let j = i + 1; j < length; j++) {
              if(arr[i] === arr[j]) {
                  i++;
                  j=i;
              }
            }
            newarr.push(arr[i])
          }
          console.log(newarr);
        }
        onlyFigure([0,0,1,2,4,2,1,6,5]);
    

      
    二、原数组下标indexOf去重

    function onlyFigure(arr) {
          let newarr = [];
          for (let i = 0; i < arr.length; i++) {
            if(arr.indexOf(arr[i]) == i) {
              //console.log(arr.indexOf(arr[i]));
              newarr.push(arr[i]);
            }
          }
          console.log(newarr);
        }
        onlyFigure([0,0,1,2,4,2,1,6,5]);
    

      

    三、新数组indexOf去重

    function only(arr) {
          let newarr = [];
          let len = arr.length;
          for(let i = 0 ; i < len ; i ++ ) {
            if(newarr.indexOf(arr[i]) === -1) {
              newarr.push(arr[i])
            }
          }
          return newarr
        }
    

      

    四、es6 Set去重

    function onlyNum(arr) {
          return Array.from(new Set(arr))
        }
    

      
    五、for...of + Object
    利用对象的属性不会重复这一特性,校验数组元素是否重复

    function distinct(arr) {
        let result = []
        let obj = {}
    
        for (let i of arr) {
            if (!obj[i]) {
                result.push(i)
                obj[i] = 1
            }
        }
    
        return result
    }
    

      
    参考(引用)链接:https://www.cnblogs.com/wisewrong/archive/2018/09/20/9642264.html

  • 相关阅读:
    jQuery语音播放插件
    Oracle(+)号用法
    重写IHttpHandler,实现前后端分离
    JavaScript运算符
    SQL Server 备份和还原
    ReactJS入门
    用Owin Host实现脱离IIS跑Web API单元测试
    Lua
    代码评比结果的反思
    我为什么要在总理来的第二天离开创业大街(转)
  • 原文地址:https://www.cnblogs.com/detanx/p/jsArrayOnly.html
Copyright © 2011-2022 走看看