前端学习:ES6中的Set与Map

1.Set

        ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了 iterator接口,所以可以使用『扩展运算符』和『for...of...』进行遍历,集合的属性和方法:


1. size 返回集合的元素个数;
2. add 增加一个新元素,返回当前集合;
3. delete 删除元素,返回 boolean 值;
4. has 检测集合中是否包含某个元素,返回 boolean 值;
5. clear 清空集合,返回 undefined;

Set中的各种操作代码实现:

let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
    // 1.数组去重
    let result = [...new Set(arr)];
    console.log(result);

    // 2.交集
    let arr1 = [3, 3, 2, 45, 5, 6, 7, 8];
    let result1 = [...new Set(arr)].filter(item => {
        let arr11 = new Set(arr1);
        return arr11.has(item);
    })
    console.log(result1);

    // 3.并集
    let result2 = [...arr, ...arr1];
    result2 = [...new Set(result2)];
    console.log(result2);

    // 4.差集
    let result3 = [...new Set(arr)].filter(item => !(new Set(arr1).has(item)));
    console.log(result3);

2.Map

概述:
        ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用『扩展运算符』和『for...of...』进行遍历;
Map 的属性和方法:
1. size 返回 Map 的元素个数;
2. set 增加一个新元素,返回当前 Map;
3. get 返回键名对象的键值;
4. has 检测 Map 中是否包含某个元素,返回 boolean 值;
5. clear 清空集合,返回 undefined;

Map的各种操作代码实现:

// 声明Map
    let map = new Map();

    // 添加元素
    map.set("name", "wusuqin");
    map.set("change", () => console.log("我们可以改变你"))


    let key = {
        school: "university"
    };
    map.set(key, ["南京", "泰州", "广州", "东莞"]);

    console.log(map);

上述代码表示对象也可以作为我们的键名,键名可以为对象,字符串,数值等

 // 查看长度
 console.log(map.size);

 // 删除
 console.log(map.delete(key));
 console.log(map);

 // 获取
 console.log(map.get(key));

 // 清空
 map.clear();
 console.log(map);

 //遍历
for (let v of map) {
        console.log(v);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值