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

    //双循环去重
    function fn(arr){
      if(Array.isArray(arr)){
        //声明一个新的数组,然后把要遍历的数组的第一个元素放入这个新数组
        var newArr = [arr[0]];
        //然后从第二个元素开始遍历老的数组,同时遍历新数组
       //把老数组和新数组的已有元素做对比,如果不相等,就放入新数组。
        for(let i=1;i<arr.length;i++){
          let flag = true;
          for(let j=0;j<newArr.length;j++){
            if(arr[i] === newArr[j]){
              flag = false;
              break;
            }
          }
          if(flag){
            newArr.push(arr[i])
          }
        }
      }
      return newArr
    }
    
    var arr = [1,1,2,2,3,4,5,5];
    var arr2 = fn(arr);
    console.log(arr2)  [1, 2, 3, 4, 5]
    
    //indexOf去重
    //两个关键点 1、声明新数组 2、判断老数组里的元素是否在新数组里,没有就push进新数组
    function fn(arr){
      if(!Array.isArray(arr)){
           console.log('type error');
            return 
       }
       var newArr = [];
       for(let i=0;i<arr.length;i++){
           if(newArr.indexOf(arr[i]) == -1){
                  newArr.push(arr[i])
            }
        }
       return newArr;
    }
    var arr = [1,1,2,2,3,4,5,5];
    var arr2 = fn(arr);
    console.log(arr2)   [1, 2, 3, 4, 5]
    
    //set 去重  
    //ES6?新增了一个数据类型 set,set的一个最大的特点就是数据不重复。
    //Set()函数可以接收一个数组(或者类数组对象)作为参数来初始化。
    function fn(arr){
      if(!Array.isArray(arr)){
        console.log('type error');
        return;
      }
      return [...new Set(arr)]
    }
    
    var arr = [1,1,2,2,3,4,5,5];
    var arr2 = fn(arr);
    console.log(arr2)   [1, 2, 3, 4, 5]
    
    
  • 相关阅读:
    mongodb分片
    mongodb副本集搭建
    mongodb数据导入导出
    mongodb安装、配置
    redis副本集
    redis安装,第一天
    redis常用命令
    mac中安装 RabbitMQ
    Vue常用模块
    nodejs,koa2常用模块
  • 原文地址:https://www.cnblogs.com/jessie-xian/p/11596896.html
Copyright © 2011-2022 走看看