• es6-set-map数据结构


    Set的用法

    set的key一定是字符串

    {

    let list=new Set(); list.add(5);//向set中增加值要用add() list.add(6); console.log('size',list.size);//set的长度要用size

    }

    结果为size 2

    还有一种声明方法,在set初始化时就定义值

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

    let list=new Set(arr);

    console.log('size',list.size); }

    结果为size 5

    size中的数据是唯一的,如果添加进去重复的数据,不会报错,但是只会显示一个,这种特性可以用来去重

    { let list=new Set();

    list.add(1);

    list.add(2);

    list.add(1);

    console.log('list',list);

    }

    上面的代码中多添加了一个1,但是只会显示一个1

    let arr=[1,2,3,1,2];

    let list2=new Set(arr);

    console.log('list2',list2);

    set不会转换数据类型

    let arr=[1,2,3,1,'2'];//前面的2是数值,后面的2是字符

    let list2=new Set(arr);

    console.log('list2',list2);

    set方法

    添加:add

    删除:delete

    清空:clear

    查看是否有某元素:has

    遍历

    {

    let arr=[1,2];

    let list=new Set(arr);

    //遍历

    for(let key of list.keys())

    { console.log('key ',key); }
    for(let value of list.values())

    { console.log('value ',value); }

    //如果不加方法,默认的会是value值

    for(let value of list)

    { console.log('value/ ',value); }

    for(let [key,value] of list.entries())

    { console.log('key,value ',key,value); }

    }

    遍历还可以使用forEach

    list.forEach(function(item)

    { console.log('item',item); })

    WeakSet的用法

    WeakSet和Set支持的数据不一样吗,weakset的元素只能时候对象

    weakset是一个弱引用,不会去检测是否与垃圾回收机制挂钩上

    {

    { let weaklist=new WeakSet();

    let arg={};//这个是一个对象

    weaklist.add(arg);

    console.log('weaklist',weaklist);

    }

    如果是weaklist.add(2);这样会报错

    weakset没有clear方法

    weakset没有set属性

    weakset不能遍历

    其他和set一样

    Map的用法

    map的key可以是多种类型

    { //声明

    let map=new Map();

    let ar=['123']; map.set(ar,456);//添加元素

    console.log('map',map,map.get(ar));

    }

    还有初始化时赋值

    { let map=new Map([['a',123],['b',456 ]]);

    console.log('map args',map); }

    map的方法

    求大小:size

    获取值:get

    添加值:set

    删除:delete

    清空:clear

    遍历

    和set一模一样

    WeakMap的用法

    weakmap与map的区别可以对比weakset与set的区别来验证

  • 相关阅读:
    红楼梦 + 写入 MySQL + MongoDB
    糗事百科 + 微信自动回复
    验证码处理
    IP 代理池
    Ajax工作原理
    php做APP接口开发,接口的安全性
    http与https区别
    mysql 索引优化
    php+ajax+jquery实现jsonp跨域
    SpringBoot中文乱码解决方案
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/11083025.html
Copyright © 2020-2023  润新知