浅析es6 ---- map & set

浅析es6 ---- map & set

set是对数组的延展,map是对对象的延展 ---- WeakSet是告别过去的set,WeakMap同样是告别过去的map。

    //set和map自带遍历器,keys(key遍历)  values(value遍历)  entries(key,value一起遍历)  forEach
    //set的方法 has 、add 、delete 、clear 

    //set去重   
    //原理:set内存在键和值,且键值相等,当键值相等时会相互覆盖,所以能实现去重
    // let arr=[1,2,4,2,5,7,31,1];
    // let setarr = new Set(arr);
    // console.log(setarr);
    // arr = [...setarr];
    // console.log(arr);

    //set求交集、并集、差集
    //原理:通过转数组获得数组的方法实现,可以通过这个思路实现更多的功能
    // let set1 = new Set([1, 2, 4, 5]);
    // let set2 = new Set([2, 3, 4, 7]);
    // let bingji = new Set( [...set1],[...set2] );
    // console.log(bingji);
    // let jiaoji = [...set1].filter(i => set2.has(i));
    // console.log(jiaoji);
    // let chaji = [...set2].filter(i => !set1.has(i));
    // console.log(chaji);


    //WeakSet  类似于Set,不可存放相同的值,两者不同的是,WeakSet只能存放对象,即Object构建出来的对象,如array...
    //WeakSet  方法add 、delete 、has  且其无法遍历

    //JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。
    //map 解决了只能使用字符当键的问题,可以使用变量或者常量为其的键
    //map 的方法,set 、get 、has、 delete
    //任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构都可以当作Map构造函数的参数。这就是说,Set和Map都可以用来生成新的 Map。
    //example:
    // const items = [
    //     ['name', '张三'],
    //     ['title', 'Author']
    // ];

    // const map = new Map();

    // items.forEach(
    //     ([key, value]) => map.set(key, value)   
    // );

    //map构建时内部发生的事情

    // 详见阮一峰ES6
    // Map可以使用...转变为数组

    //WeakMap 和Map一样也是键值对组合,但是不同的是,WekMap只接受对象,即Object构建的(null除外) 为键值   和WeakSet一样不可遍历
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值