TypeScript ------ Map对象

TypeScript Map对象

Map 对象保存键值对,并且能够记住键的原始插入顺序。
任何值(对象或原始值)都可以作为一个键或一个值。
Map 是 ES6中引入的一种新的数据结构。

创建 Map

TypeScript 使用 Map 类型和 new 关键字来创建 Map:

	let myMap = new Map();

初始化 Map,可以以数组的格式来传入键值对:

	let myMap = new Map([
		["key1","value1"],
		["key2","value2"]
	]);

Map 相关的函数与属性:

  • map.clear() - 移除 Map 对象的所有键/值对。
  • map.set() - 设置键值对,返回该 Map 对象。
  • map.get() - 返回对应的值,如果不存在,则返回 undefined。
  • map.has() - 返回一个布尔值,用于判断 Map 中是否包含键对应的值。
  • map.delete() - 删除 Map 中的元素,删除成功返回 true,失败返回 false。
  • map.size - 返回 Map 对象键/值对的数量。
  • map.keys() - 返回一个 Iterator 对象,包含了Map 对象中每个元素的键。
  • map.values() - 返回一个新的 Iterator 对象,包含了 Map 对象中每个元素的值。
  • map.entries() - 返回一个新的 Iterator 对象,包含了 Map 对象中所有键/值对。
实例
	let myMap = new Map([
        ["key1", "value1"],
        ["key2", "value2"]
    ]); 
    console.log(myMap);
    //设置键值对,返回该 Map 对象
    myMap.set("key3","value3");
    console.log(myMap)
	//返回对应的值,如果不存在,则返回 undefined。
    console.log(myMap.get("key3"))  //value3
    console.log(myMap.get("key4"))  //undefined
	//返回一个布尔值,用于判断 Map 中是否包含键对应的值。
    console.log(myMap.has("key3")); //true
    console.log(myMap.has("key4")); //false
	//删除 Map 中的元素,删除成功返回 true,失败返回 false。
    console.log(myMap.delete("key3"));//true
    console.log(myMap.delete("key4"));//false
	//返回 Map 对象键/值对的数量。
    console.log(myMap.size);//2
	//返回一个 Iterator 对象,包含了Map 对象中每个元素的键。
    console.log(myMap.keys()) //MapIterator {"key1", "key2"}
	//返回一个新的 Iterator 对象,包含了 Map 对象中每个元素的值。
    console.log(myMap.values())//MapIterator {"value1", "value2"}

    console.log(myMap.entries())//MapIterator {"key1" => "value1", "key2" => "value2"}
    
    //移除 Map 对象的所有键/值对
    myMap.clear();
    console.log(myMap);

使用 es6 编译

tsc --target es6 test.ts
迭代 Map

Map 对象中的元素是按顺序插入的,我们可以迭代 Map 对象,每一次迭代返回 [key,value]数组。
TypeScript使用 for...of来实现迭代:

实例
	// 迭代 Map 中的 key
    for (let key of myMap.keys()) {
        console.log(key);    //key1  //key2
    }

    // 迭代 Map 中的 value
    for (let value of myMap.values()) {
        console.log(value); //value1 //value2
    }
    
    // 迭代 Map 中的 key => value
    for (let entry of myMap.entries()) {
        console.log(entry[0], entry[1]); //key1 value1  //key2 value2
    }

    // 使用对象解析
    for (let [key, value] of myMap) {
        console.log(key, value);   //key1 value1  //key2 value2
    }

同样使用 es6 编译

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值