ES6入门---第三单元 模块四:Set和WeakSet

发布于:2025-05-09 ⋅ 阅读:(23) ⋅ 点赞:(0)

set数据结构:
    类似数组,但是里面不能有重复值,如果有,只显示一个

set用法:

    let setArr = new Set(['a','b']);

    setArr.add('a');   往setArr里面添加一项

let setArr = new Set().add('a').add('b').add('c');

    setArr.delete('b');    删除一项

    setArr.has('a')    判断setArr里面有没有此值

    setArr.size    个数

    setArr.clear();    清空

循环:

a)

let setArr = new Set(['a','b','c','d']);

        for(let item of setArr){//默认就是value
            console.log(item);
        }

b). for(let item of setArr.keys()){console.log(item);}
c). for(let item of setArr.values()){}
d). for(let [k,v] of setArr.entries()){}

e). setArr.forEach((value,index) =>{
                    console.log(value, index);
                });

作用:

1、去重 

let arr = [1,2,3,4,5,6,7,6,5,4,3,2,1,2,3,4,4];

        let newArr = [...new Set(arr)];

        console.log(newArr);

补充:

1、让set数据结构变成数组:
    [...set]

2、想让set使用数组的,map循环和filter:

let set = new Set([1,2,3]);
        
        let set2 = new Set();
        for(let value of set.values()){
            set2.add(value*2);
        }

        console.log(set2);

 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

let set = new Set([1,2,3]);
        
        set = new Set([...set].map(val=>val*2));

        console.log(set);

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

let set = new Set([1,2,3,4,5,6]);
        
        set = new Set([...set].filter(val=>val%2==0));

        console.log(set);

new Set([]);    存储数组, 这种写法对

错误:

 let set = new Set({a:1,b:2});

        set.forEach((item) =>{
            console.log(item);
        })

new WeakSet({})    存储json,这种写法不靠谱

    WeakSet没有size,也没有clear()

    有, add(), has(), delete()

初始往里面添加东西,是不行的。最好用add添加


网站公告

今日签到

点亮在社区的每一天
去签到