es6-11(2)

集合

set

1.set常用的方法

Set.prototype.Constructor():

构造函数,就是Set()
Set.prototype.size():返回Set实例成员总; 

add(value):添加值,返回Set本身
delete(value):删除值,返回一个布尔值,判断删除是否成功
has(value):返回布尔值,表参数是否为Set成员
clear():清除所有成员,无返回值
 

let s=new Set();
let s2=new Set(["zyj","wmx","cxb","zxd","dxc"]);
//元素个数
console.log(s2.size);//5
//添加元素
s2.add("zyc");
//删除元素
s2.delete("cxb");
//判断是否含有
s2.has("zyj);//true

 

2.遍历 

  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回键值对的遍历器
  • forEach(function(){}):使用回调函数遍历每个成员,无返回值

3.weakSet

与Set的区别

最主要的区别是weakSet的成员只是对象,不能是其他值

weakSet的方法

  • WeakSet.prototype.add(value ):添加新成员
  • WeakSet.prototype.delete(value):删除指定成员
  • WeakSet.prototype.has(value):返回布尔值,表指定值是否在WeakSet实例中

 他的方法与set很想但是添加一个prototype,并且没有返回长度的方法

且不能遍历成员

二、Map

和set不同的是他哥维纳风格类似于对象,用键值对的方式但是他保存的是地址值,可以是各中类型的数据

1.属性方法

size()    返回Map结构的成员总数

set(key,value)        设置key值所对应的键,然后返回

                                             若key已经有值,则赋值更新,否则新生成该键值

get(key)
获取key对应的值,若找不到key则返回undefined

has(key)
返回一个布尔值,表示ley是否在Map结构中

delete(key)
删除某个键,删除成功则返回true,反之返回false

clear()
 

2、遍历

方法与set方法校相通

3、数据类型转化

与对象

//map转对对象
function mapToObj(m){
let obj=Object.create(null);

//用增强for循环遍历到对象里卖弄
for(let [k,v] of m){
obj[k]=v;
}
return obj
}


//对象转map
function objToMap(obj){
    let M=new Map();
    for(let k of Object.keys(obj)){
        M.set(k.obj[k]);
    }
    return strMap;
}

与json

map转json

如果Map键名都是字符串,可以转为对象JSON

function StrMapToJson(StrMap){
    reutrn JSON.stringify(strMapToObj(strMap));
}

如果Map键名中含有非字符串,转为数组JSON

function mapToArrayJson(map){
    return JSON.stringify(...map);
}


json转map
正常情况所有键名都是字符串

function jsonToStrMap(jsonStr){
    return objToStrMap(JSON.parse(jsonStr));
}

4.weakMap

masp与weakmap

WeakMap只接受对象作为名字(null除外),不接受其他类型的值作为键名(即数组和Symbol值作为WeakMap的键名时会报错)

WeakMap的键名所指向的对象不计入垃圾回收机制(会自动被移除,有助于防止内存泄漏)

WeakMap没有遍历操作,也,没有size(),没有clear()
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值