zoukankan      html  css  js  c++  java
  • 14.集合

    集合介绍和API

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

    1. size 返回集合的元素个数
    2. add 增加一个新元素,返回当前集合
    3. delete 删除元素,返回boolean值
    4. has 检测集合中是否包含某个元素,返回boolean值
    //声明一个 set
    let s = new Set();
    let s2 = new Set(['大事','小事','好事','坏事','小事']);
    
    //元素个数
    console.log(s2.size);//4
    console.log(s2);//set(4)['大事','小事','好事','坏事']
    //添加新的元素
    s2.add('喜事');
    console.log(s2);//set(5)['大事','小事','好事','坏事','喜事']
    //删除元素
    s2.delete('坏事');
    console.log(s2);//set(4)['大事','小事','好事','喜事']
    //检测
    console.log(s2.has('好事'));//true
    //清空
    s2.clear();
    console.log(s2);//set(0)[]
    
    for(let v of s2){
        console.log(v);
    }
    //'大事'
    //'小事'
    //'好事'
    //'喜事'
    

    集合实践

    let arr = [1,2,3,4,5,4,3,2,1];
    //1.数组去重
    let result = [...new Set(arr)];
    console.log(result);//[1,2,3,4,5]
    
    //2.交集
    let arr2 = [4,5,6,5,6];
    let result = [...new Set(arr)].filiter(item=>{
        let s2 = new Set(arr2);//4 5 6
        if(s2.has(item)){
            return true;
        }else{
            return false;
        }
    })
    console.log(result);//4,5
    //简化
    let result = [...new Set(arr)].filiter(item=>new Set(arr2.has(item));
    console.log(result);//4,5
    
    //3.并集
    let union = [...new Set[...arr,...arr2]];
    console.log(union);//1,2,3,4,5,6
    
    //4.差集
    let diff = [...new Set(arr)].filiter(item=> !(new Set(arr2.has(item)));
    console.log(union);//1,2,3
    
    
    
  • 相关阅读:
    [JSOI2010]解题报告+2010~2011小结
    有用的东西(emacs配置和bzoj数据下载网址)
    [JSOI2011]解题报告
    [JSOI2010]旅行题解
    [BOI2007]Mokia题解
    分块总结
    统计数字
    爬不出去的水井
    采药
    沙漠储油点
  • 原文地址:https://www.cnblogs.com/AaronNotes/p/14368639.html
Copyright © 2011-2022 走看看