zoukankan      html  css  js  c++  java
  • 数组去重的三种方法

    function quchong(arr){
        let brr = [];
        for(var i = 0;i<arr.length;i++){
            if(brr.indexOf(arr[i]) < 0){
               brr.push(arr[i]);    
            }
        }
        return brr;
    }
    
    function quchong(arr){
        let obj = {};
        let brr = [];
        for(var i=0;i<arr.length;i++){
            if(!obj[arr[i]]){
                obj[arr[i]] = 1;
                brr.push(arr[i]);
            }
        }
        return brr;
    }
    

      上面去重的方法老生常谈了,一种是用数组的indexOf的方法,检索数组里面是否存在该元素,如果不存在就push进另外一个数组里面。
    一种是利用对象的key值不会重复的特性。

    ES6提供了一种新的数据结构Set,类似于数组,但是成员的值都是唯一的,没有重复的值。

    Set本身是一个构造函数,用来生成Set数据结构。

    const s = new Set();

    然后也可以接受一个数组来作为参数,用来初始化。

    const set = new Set([1,2,3,3,4,5]);

    [...set]   //[1,2,3,4,5]

    所以数组去重的另外一种方法:

    [...new Set(array)] 

    或者用另外一种方式转化为数组,Array.from()的方法,将一个set对象转化为Array对象。

    Array.from方法从一个类数组对象或者可迭代对象中创建一个新的数组实例。可迭代的对象是指那些具有Symbol.iterator属性的对象。可以使用for...of进行遍历。比如:Array,Map,Set,String,arguments,NodeList等对象。

    Array.from(new Set(a));

     下节着重讲下:ES6中的Set结构

  • 相关阅读:
    django 单表操作
    爬虫学习
    DRF源码分析
    DRF权限和频率限制
    DRF版本和认证源码分析
    request高级部分
    多任务异步爬虫及selenium模块使用
    requests基本使用
    爬虫介绍及环境
    Flask生命周期的源码流程
  • 原文地址:https://www.cnblogs.com/tangjiao/p/9041100.html
Copyright © 2011-2022 走看看