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 实例 可以通过 `new Map()` 构造函数创建一个新的 `Map` 实例。键值对可以通过 `set()` 方法添加到 `Map` 中,也可以在创建时通过数组直接初始化。 ```javascript var a = new Map(); a.set("name", "梁戈霄"); a.set(1, ["a", "b", "c"]); console.log(a); // 输出: Map { 'name' => '梁戈霄', 1 => [ 'a', 'b', 'c' ] } ``` ### 设置和获取值 `set()` 方法用于向 `Map` 中添加或更新键值对,而 `get()` 方法用于检索指定键的值。 ```javascript var rtMap = new Map(); rtMap.set("1", "hello"); rtMap.set("2", "good"); console.log(rtMap.get("1")); // 输出: hello console.log(rtMap.get("2")); // 输出: good ``` ### 检查键或值是否存在 `has()` 方法用于检查 `Map` 中是否存在指定的键或值。如果存在,则返回 `true`;否则返回 `false`。 ```javascript if (rtMap.has("1")) { console.log("含有该键"); } else { console.log("不含有该键"); } if (rtMap.has("hello")) { console.log("含有该值"); } else { console.log("不含有该值"); } ``` ### 获取所有键、值或条目 `keys()`、`values()` 和 `entries()` 方法分别用于获取 `Map` 的所有键、值或条目。这些方法返回的是迭代器对象,可以通过扩展运算符转换为数组。 ```javascript var keys = [...rtMap.keys()]; var values = [...rtMap.values()]; var entries = [...rtMap.entries()]; console.log(keys); // 输出: [ '1', '2' ] console.log(values); // 输出: [ 'hello', 'good' ] console.log(entries); // 输出: [ [ '1', 'hello' ], [ '2', 'good' ] ] ``` ### 删除条目和清空 Map `delete()` 方法用于删除指定键的条目,而 `clear()` 方法用于删除所有条目。 ```javascript rtMap.delete("1"); console.log(rtMap); // 输出: Map { '2' => 'good' } rtMap.clear(); console.log(rtMap); // 输出: Map {} ``` ### Map 与数组转换 `Map` 可以通过扩展运算符轻松转换为数组,反之亦然。 ```javascript var mapFromArray = new Map([ ["key1", "value1"], ["key2", "value2"] ]); var arrayFromMap = [...mapFromArray]; console.log(arrayFromMap); // 输出: [ [ 'key1', 'value1' ], [ 'key2', 'value2' ] ] ``` ### Map 的遍历 `Map` 支持使用 `forEach()` 方法进行遍历,类似于数组的 `forEach()` 方法。 ```javascript mapFromArray.forEach((value, key) => { console.log(`键: ${key}, 值: ${value}`); }); ``` ### 示例:使用 Map 进行数据处理 假设有一个数组,需要将其转换为 `Map` 并进行一些处理。 ```javascript var arr = [1, 2, 3, 4]; var doubledMap = new Map(arr.map((item, index) => [index, item * 2])); console.log(doubledMap); // 输出: Map { 0 => 2, 1 => 4, 2 => 6, 3 => 8 } ``` ### 注意事项 - `Map` 的键可以是任意类型,包括对象和原始值。 - `Map` 保持插入顺序,因此可以通过遍历器按顺序访问条目。 - `Map` 提供了比普通对象更丰富的操作方法,如 `size`、`clear()` 和 `delete()`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coder-文小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值