js中Map类型的使用

js中的Map类型数据和java中的Map差不多,是一组键值对的结构,具有极快的查找速度,这里简单介绍一下使用方法:

1.创建并初始化对象:

方式一,使用二维数组的方式初始化:

let userMap = new Map([['id',1],['name','张三'],['age',12]]);

方式二,使用set方法初始化:

	let userMap = new Map();
	userMap.set("id",1);
	userMap.set("name","张三");
	userMap.set("age",12);

2.通过key获取map中的值:

let id = userMap.get("id");

3.删除map中key:

userMap.delete("id");

4.循环遍历map:

方式一,使用forEach:

userMap.forEach(function(value,key)	{
		console.log(key+":"+value);
	});

方式二,使用entries:

for(let entry of userMap.entries()){
		console.log(entry[0]+":"+entry[1]);
	}

方式三,使用for-of:

for(let item of userMap) {
		console.log(item[0]+":"+item[1]);
	}

方式四,使用keys:

for(let key of userMap.keys()){
		console.log(key+":"+userMap.get(key));
	}

方式五,使用values,遍历value:

for(let value of userMap.values()){
		console.log(value);
	}
JavaScript 的 `Map` 对象是一个集合数据结构,它存储键值对,并允许使用任何类型的键(例如字符串、数字甚至对象)。与数组相比,Map 的优势在于它的元素是以键值对的形式存储,查找效率更高。 ### Map 的创建 你可以通过以下几种方式创建一个新的 `Map` 实例: ```javascript // 方式一:使用构造函数直接创建 const map = new Map(); // 方式二:使用字面量语法初始化 Map const map = new Map([ ['key1', 'value1'], ['key2', 'value2'] ]); // 或者用 Object.fromEntries() 将对象转换为 Map const obj = { key1: 'value1', key2: 'value2' }; const mapFromObj = new Map(Object.entries(obj)); ``` ### Map 的常用方法 #### 添加键值对 (`set`) 向 `Map` 添加新项或覆盖已有键的值。 ```javascript map.set('newKey', 'newValue'); ``` #### 获取值 (`get`) 通过键获取对应的值。 ```javascript const value = map.get('newKey'); ``` #### 删除项 (`delete`) 移除指定键及其关联的值。 ```javascript map.delete('newKey'); ``` #### 清空所有内容 (`clear`) 删除所有的键值对。 ```javascript map.clear(); ``` #### 遍历 (`entries`, `keys`, `values`) 遍历 `Map` 内的所有键值对、键或值。 ```javascript for (const [key, value] of map.entries()) { console.log(`${key}: ${value}`); } for (const key of map.keys()) { console.log(key); } for (const value of map.values()) { console.log(value); } ``` #### 检查是否存在某个键 (`has`) 检查 Map 是否包含指定的键。 ```javascript if (map.has('newKey')) { console.log("Key exists."); } ``` #### 查找键的位置 (`ofKeyIndex`) 找到给定键的第一个位置(如果存在),并返回索引。对于不存在的键返回 `-1`。 ```javascript let index = map.indexOf('keyName'); ``` ### 示例 假设我们有一个学生成绩表: ```javascript const grades = new Map(); grades.set('Alice', { math: 85, science: 90 }); grades.set('Bob', { math: 70, science: 75 }); grades.forEach((scores, name) => { console.log(`${name} 的数学成绩: ${scores.math}, 科学成绩: ${scores.science}`); }); ``` ### 相关问题: 1. **如何迭代 Map 并处理每个键值对?** 2. **解释 `Map.of` 和 `Map.entries()` 的区别?** 3. **当需要同时维护键和值的顺序时,Map 应该如何使用?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder-文小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值