set 集合中的元素不能重复
map key可以使任意的类型
// set 新增数据 add ,获取长度 size
{
let list = new Set();
list.add(5);
list.add(7);
console.log( list ) ; // {5, 7}
console.log("size--" + list.size); // 2
}
{
let arr = [1, 2, 3, 4, 5, 6];
let list = new Set( arr );
console.log("size--" + list.size);// 6
}
//不能添加重复元素,重复元素不会添加成功;可以实现去重
{
let list = new Set();
list.add(1);
list.add(2);
list.add(1);
console.log( list ); // {1, 2}
console.log("size--" + list.size);// 2
let arr = [ 1, 2, 3, 1, 3];
let list2 = new Set(arr);
console.log(list2); // {1, 2, 3}
console.log("size--" + list2.size ); // 3
}
{
let arr = [ 'add', 'delete', 'clear', 'has'];
let list = new Set(arr);
//查看包含元素
console.log( list.has('add')); // true
// 删除
list.delete('add');
console.log(list); // {"delete", "clear", "has"}
// 清空
list.clear();
console.log(list); // {}
}
{
let arr = ['add', 'delete', 'clear', 'has'];
let list = new Set(arr);
// 遍历读取
for(let key of list.keys()){
console.log(key); // add delete clear has
}
for( let values of list.values()){
console.log(values); // add delete clear has
}
for(let value of list){
console.log(value); // add delete clear has
}
for(let [key,value] of list.entries()){
console.log(key,value); // add delete clear has
}
list.forEach( function(item){
console.log(item); // add delete clear has
})
}
//WeakSet与set的区别:
// 1.支持的数据类型不一样,WeakSet只能是对象,2
// 2.对象都是弱引用,只是引用了该数据的地址,并且不会检测改地址是否被垃圾回收机制回收掉
//3.没有clear方法
//4.没有size属性
//5.不能遍历
{
let weakList = new WeakSet();
let arg = {};
weakList.add(arg);
// weakList.add(2); // 报错,不支持除对象外的数据
console.log(weakList);
}
//Map
{
//第一种定义方法
let map = new Map();
let arr = ['123','111'];
map.set(arr,456);
console.log(map);// {["123", "111"] => 456}
//根据key值获取value
console.log(map.get(arr));// 456
//第二种定义方法
let map2 = new Map( [ [ 'a' , '111' ] , [ 'b' ,'222' ] ] );
console.log(map2); // { "a" => "111", "b" => "222"}
//长度值
console.log( map2.size );
//删除
console.log( map2.delete('a'), map2); // true {"b" => "222"}
console.log( map2.clear(), map2); // undefined {}
}
//WeakMap与Map的区别:
// 1.支持的数据类型不一样,WeakMap只能是对象
// 2.对象都是弱引用,只是引用了该数据的地址,并且不会检测改地址是否被垃圾回收机制回收掉
//3.没有clear方法
//4.没有size属性
//5.不能遍历