zoukankan      html  css  js  c++  java
  • 【20190304】JavaScript-知识点总结:Set,异或

    ES6新特性:Set

    ES6提供了新的数据结构SetSet对象不是数组, 可以用来保存对象或者基本类型, 所有保存的值都是唯一的, chrome浏览器>38和FF>13,以及nodeJS,对Set支持良好。

    创建方法:

    1 let set1 = new Set(); //或者 new Set(null);
    2 let set2 = new Set([1,2,3,4,4,4,4,4]);
    3 
    4 console.log( Array.from(set) ); //输出:[ 1, 2, 3, 4 ]

    可以看到,以上重复的4,在set里面只保存了一个, 所以Set对象可以用来给数组去重;

    Set也能用来保存NaN和undefined, 如果有重复的NaN, Set会认为就一个NaN(实际上NaN!=NaN);

    Set属性:

    Set.prototype

    Set.prototype.size

    Set方法:

    Set.prototype.add()

    Set.prototype.clear()

    Set.prototype.delete()

    Set.prototype.entries()

    Set.prototype.forEach()

    Set.prototype.has()

    Set.prototype.values()                                                                                                                                                                                               

    Set.prototype[@@iterator]()

    Set的实际用处:   

    利用set可以方便的进行交集和并集

    弱引用的WebSet

    WeakSet对象是一些对象值的集合, 并且其中的每个对象值都只能出现一次,WeakSet只能存对象类型的元素,比如:Object, Array, Function 等等;有了弱引用的WeakSet, 就不用担心内存泄漏了,如果别的对象不引用该对象, 这个对象会被垃圾回收机制自动回收。

    WeakSet对象的方法只有三个,而且WeakSet对象没有size属性;

    weakSet.add();

    weakSet.delete();

    weakSet.has();

    参考:https://www.cnblogs.com/diligenceday/p/5479076.html

    异或^/XOR:

    异或运算是一种逻辑运算,它表示两个值相同时,返回结果为0,两个值不同时,返回结果为1。

    异或的应用:

    1. 不使用临时变量,交换两个变量的值:

    1 function swap(a,b){
    2     a=a^b;
    3     b=b^a;
    4     a=a^b;
    5 }

    2. 数组中只有一个数字只出现一次,其他值均出现两次,找出数组中唯一不出现两次的数字:

    function FindNumsAppearOnce(nums){
        let n;
        for(let i=0;i<nums.length;i++){
            n^=nums[i];
        }
        return n;
    }
  • 相关阅读:
    转:ibatis的N+1问题解决方案
    转:ibatis动态sql
    转:Spring源码分析:IOC容器
    web项目中通过spring获得ApplicationContext
    转:import static和import的区别
    python实现linux命令结果输出
    linux获取当前pts
    docker挂载本地目录
    mysql数据导入导出
    python实现linux远程操控windows执行cmd命令
  • 原文地址:https://www.cnblogs.com/huangrui-dori/p/10469217.html
Copyright © 2011-2022 走看看