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);