ECMAscript6快速入门-set和map

来源:互联网 发布:unity3d微信群 编辑:程序博客网 时间:2024/05/29 17:49

set

就是一种集合 : 是由一组无序且唯一的项组成
特点:key 和 value 相同,不会重复

1.创建一个set

    const s = new set([1,2,3]);

2.属性

    s.size;

3.方法

    //1.添加    s.add(value)//添加一个数据,返回set本身    s.add('a').add('b').add('c')    //2.删除    s.delete(value)//删除一个数据,返回布尔值,表示是否删除成功    s.delete('a')//true    s.delete('a')//false    //3.查找    s.has(value)//判断是否是set的成员,返回布尔值    //4.格式化    s.clear()//清楚所有数据,没有返回值    //5.keys()返回键名  values()返回值    console.log(s.keys())//setIterator{1,2,3,'b','c'}    console.log(s.values())//setIterator{1,2,3,'b','c'}    //6.entries() 返回键值对     console.log(s.entries())//setIterator{[1,1],[2,2],[3,3],['b','b'],['c','c']}    //7.forEach()    s.forEach(function(key,value,set){        //body...    })

Iterator之后会有讲解

map

类似字典:用来存储不重复的key的hash结构,不同于set的是,它是用[键,值]的形式来存储数据的。
也类似与 json (javascrtip对象),json的键值只支持字符串string,虽然可以存数值,但是取出来也是string。

var obj1 = {a : 1}var obj2 = {b : 2}var obj3 = {}obj3[obj1] = 1;obj3[obj2] = 2;//当键是对象的时候,浏览器对调用这个对象的toString方法转成字符串然后存储//这时 用map 来存储最佳console.log(obj3)//{[object Object]: 2}

1.创建Map

const m = new Map([    ['a',1],    ['b',2]])

2.属性

    m.size;

3.方法

    /*1.set(key,value)设置键名和对应的值,如果已有则会刷新,返回map结构*/    m.set('c',3).set('d',4)    m.get(key)//取值 如果找不到返回undefind    m.delete(key)//删除,返回布尔值,删除失败false    m.has(key)//判断是否有某个key    m.clear()//删除全部    keys()返回键名  values()返回值    entries() 返回键值对 forEach()

注意事项:

m.set(NaN,1).set(NaN,100);//在map中 NaN是同一个键
//引用数据类型比较的是内存地址m.set({},1).set({},2);
原创粉丝点击