ES6 Set

作者: 酸辣粉儿 | 来源:发表于2017-07-04 10:20 被阅读0次

    consts=newSet();

    [2,3,4,5,2,2,3].forEach(x=>s.add(x));//向Set中添加值

    for(letiofs){

    document.write(i+',')

    }//数组去重,结果 2,3,4,5

    constset=newSet([6,7,8,8,9,7]);

    console.log([...set]);//数组格式去重 结果:6,7,8,9    数组去重格式[...new Set(array)];

    向Set插入值时,并不会发生数据格式转换,所以5和'5'是两个不同的值;另外,两个对象总是不相等的。会被视为两个值。

    Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。

    add(value):添加某个值,返回Set结构本身。

    delete(value):删除某个值,返回一个布尔值,表示删除是否成功。

    has(value):返回一个布尔值,表示该值是否为Set的成员。

    clear():清除所有成员,没有返回值。

    Array.from将Set结构转为数组。

    constitems=newSet([1,2,3,5,4]);

    constarray=Array.from(items);

    数组的去重方法

    functiondedupe(arr){

    returnArray.from(newSet(arr));

    }

    Set结构的实例有四个遍历方法,可以用于遍历成员。

    keys():返回键名的遍历器

    values():返回键值的遍历器

    entries():返回键值对的遍历器

    forEach():使用回调函数遍历每个成员

    需要特别指出的是,Set的遍历顺序就是插入顺序。这个特性有时非常有用,比如使用Set保存一个回调函数列表,调用时就能保证按照添加顺序调用

    Set结构没有键名所谓key,所以keys(),values(),遍历的时候键值就是键名去遍历的,执行操作是完全一样的。

    letset=newSet([1,2,3,2,1,5]);

    for(letiofset.keys()){

    console.log(i)

    }

    for(letiofset.values()){

    console.log(i)

    }

    结果1,2,3,5一模一样

    for(letitemofset.entries()) {

    console.log(item);

    }

    遍历出来键值,键名是一样的,列举一个结果[1,1];

    Set结构默认遍历是values,所以forof时可省略values();

    Set结构的forEach是对每个成员的操作。

    letset=newSet([1,2,3,4,5]);

    set.forEach((value)=>{

    console.log(value*2);

    })

    对每个value*2;

    在操作中如果想要同步改变Set结构,可直接赋值;

    letset=newSet([1,2,3,4]);

    set=newSet([...set].map(value=>value*2))

    console.log(set)

    另外一种就是Array.from

    set=newSet(Array.from(set,value=>value*2))

    console.log(set);

    文章总结于:阮老师的ES6

    相关文章

      网友评论

          本文标题:ES6 Set

          本文链接:https://www.haomeiwen.com/subject/zbpthxtx.html