• 数组去重的三种方法


    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结构

  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/tangjiao/p/9041100.html
Copyright © 2020-2023  润新知