zoukankan      html  css  js  c++  java
  • ES6-set && 数组剔重

    set

    Set:ES6中提供的新的数据结构set。特点:1.类似数组,属性值时唯一的!!2.Set本身是一个构造函数,用来生成数据结构,表现形式{1,"3",78},是个数据集合

      var s = new Set();
         s.add(1).add(2).add(3).add(3).add(NaN).add(NaN).add({}).add({});
         console.log(s);//Set {1, 2, 3, NaN, Object {}, Object {}}

    【注意】:

    • 1.set里的成员是唯一的:所有只有一个3

    • 2.NaN在此是个特殊,也只能打印出一个NaN

    • 3.此处的对象是对应两个引用,所以是两个object

    Set的属性和方法

    属性:
    • 1.Set.prototype.constructor:构造函数,默认就是Set函数。

    • 2.Set.prototype.size:返回Set实例的成员总数。

    方法:
    1. 1.add(value); 添加某个值,返回Set结构本身

    2. delete(value); 删除某个值,返回一个布尔值,表示删除是否成功

    3. has(value); 返回一个布尔值,表示该值是否为Set的成员4. clear(); 清除所有成员,没有返回值

    试问:我们现在如何拿到其中一个任意值?

    四种遍历的方法,用于遍历成员,配合for of使用

    1.keys(); 返回一个键名的遍历器

    2.values(); 返回一个键值的遍历器(这里的键值都是一个东西)

    3.entries():返回一个键值对的遍历器

    4.for in:使用回调函数遍历每个成员for in:使用回调函数遍历每个成员

     var md = new Set([1,43,56,"lalala"]);
        for(let item of md){
           console.log(item);
        }
         // 1
         // 43
         // 56
         // lalala
    

      

     

    // keys(); 返回一个键名的遍历器

      let set = new Set(['red', 'green', 'blue']);
        for (let item of set.keys()) {
          console.log(item);
        }
        // red
        // green
        // blue
    

      

    // values(); 返回一个键值的遍历器(这里的键值都是一个东西)

    for(let item of set.values()){
                   console.log(item);
                }
                // red
                // green
                // blue
    

      

    // entries():返回一个键值对的遍历器

    for(let item of set.entries()){
               console.log(item);
            }
            // ["red", "red"]s
            // ["green", "green"]
            // ["blue", "blue"]
    

      

    【数组剔重】(几种方法)

    // 源生的方法一:

     var arr=[3,5,7,8,10,4,2,3,3,3,4,2];
        var nArr = [];
           for(let i = 0; i < arr.length; i++){
              if(nArr.indexOf(arr[i]) === -1){
                 nArr.push(arr[i]);
              }
           }
        console.log(nArr);//[3, 5, 7, 8, 10, 4, 2]
    

      

    //源生的方法二

     var arr=[3,5,7,8,10,4,2,3,3,3,4,2];
        for(var i = 0; i < arr.length; i++){
           for(var j = i+1; j <arr.length; j++){
              if(arr[i]==arr[j]){
                 arr.splice(j,1);
                 j--;
              }
           }
        }
        console.log(arr);
    

      

    //方法三:利用set里的值唯一的属性

      var arr99 = new Set(arr);
        console.log(arr99);//Set {3, 5, 7, 8, 10…}
        //再来解构一下,变成[]
        var arr88 = [...arr99];
        console.log(arr88);//[3, 5, 7, 8, 10, 4, 2]
    

      

  • 相关阅读:
    day25:接口类和抽象类
    vue1
    How the weather influences your mood?
    机器学习实验方法与原理
    How human activities damage the environment
    Slow food
    Brief Introduction to Esports
    Massive open online course (MOOC)
    Online learning in higher education
    Tensorflow Dataset API
  • 原文地址:https://www.cnblogs.com/zhaowenxin/p/6160701.html
Copyright © 2011-2022 走看看