ECMAScript 6 —— 知识点(十) Set、WeakSet、Map、WeakMap

一、Set:Set 是一种类似于数组但成员值都是唯一的数据结构

var s = new Set();
[2,3,4,5,3,5,6,1,3,2].map(x=>s.add(x));
for(i of s)
{
    console.log(i);
}
var set = new Set([1,4,4,]);
console.log(set);// {1,4} ,对象形式
console.log('size :',set.size);
set.forEach((v,k)=> console.log(k +':' + v*2));

二、WeakSet:类似于Set,但是只能存储对象

var ws = new WeakSet();
var s = [[1,3],[3,4]];
ws.add(s);
ws.add(1);//Error

三、Map:不局限于字符串作为键的hash结构

var map = new Map();
var key = {'userid': 111};
map.set(key,{});
map.get(key);//{}
map.has(key);//true
map.delete(key);//true
map.has(key);//false
var map2 = new Map([['name','Tom'],['age',18]]);
console.log(map2.size);//2
map.has('name')
map.get('name')
map.has('age')
map.get('age')

四、WeakMap:类似于Map,区别在于只能使用非NULL的对象作为hash的键。

猜你喜欢

转载自blog.csdn.net/wuxinwudai/article/details/80838240