0
点赞
收藏
分享

微信扫一扫

JS学习总结6 Set Map

八怪不姓丑 2022-01-12 阅读 94

1.Map基本使用

1.new Map(参数) 创建新的 Map 对象。参数是个二维键值对数组
2.set(key,value) 为 Map 对象中的键设置值。
3.get(key) 获取 Map 对象中键对应的值,未找到键返回undefined
4.entries() 返回 Map 对象中键/值对的数组。
5.keys() 返回 Map 对象中键的数组。
6.values() 返回 Map 对象中值的数组。
7.clear() 删除 Map 中的所有元素。
8.delete() 删除由键指定的元素。
9.has() 如果键存在,则返回 true。
10.size属性 Map 键值对个数


2.Map和对象区别

1.Map对象存有键值对,其中的键可以是任何数据类型。而对象的只能是字符串或者 Symbols

		let a={name:"xm",age:19}
		let b={math:100,score:200}
		let map=new Map([[a,b]]);
		map.set(function(){},b)
		map.set(1,b)
		map.set("1",b)
		map.set([],b)
		console.log(map);

在这里插入图片描述

		可以看到键任何数据类型都可以
		如果用object的话
		
		let obj={a:b,1:b,"1":b,}
		console.log(obj);
		如果用函数和数组作为键直接报错。就没写上
		如果对象作为键,对象名变成了字符串。
		如果1作为键,会被转成字符串"1",被后面一个键"1"覆盖

在这里插入图片描述

		
注意如果键是个引用类型
console.log(map.get({name:"xm",age:19}));
会输出undefined	

2.Map有排序,对象没排序

上面的例子可以看到Map所有键值对都有下标,顺序是加入顺序
但是对象没有

3.Map有size属性可以知道多少键值对,对象没有直接方法

		let obj={1:2}
		console.log(Object.keys(obj).length); 	//1

1.Set基本使用

new Set(参数) 创建新的 Set 对象。 如果参数是个可迭代对象,会去重并加入set
add() 向 Set 添加新元素。
clear() 从 Set 中删除所有元素。
delete() 删除由其值指定的元素。
entries() 返回 Set 对象中值的数组。
has() 如果值存在则返回 true。
forEach() 为每个元素调用回调。
keys() 返回 Set 对象中值的数组。
values() 与 keys() 相同。
size 返回元素计数。


2.Set与数组,Map区别

1.每个值在 Set 中不重复,

2.Set中的values()和keys()输出一样

3.Set中的entries,输出键值对,键和值一样


3.Map和Set转化为数组

Map

1 Array.from(Map) Map对象转化为 二维键值对数组

		let map =new Map([[1,2]])		
		console.log(map);				//0: {1 => 2}
		console.log(Array.from(map));	//[1, 2]

因为keys(),values()都返回的迭代器,所以可以转化成keys数组和values数组

console.log(Array.from(map.keys()));//[1]

2. …展开语法

console.log([...map]);	//[1, 2]

Set

1.Array.from(Set) Set对象转化为一维数组

		let set =new Set([1,2])	
		console.log( Array.from(set));// [1, 2]

2. …展开语法

与Map完全一致

举报

相关推荐

0 条评论