ES6中Map的用法介绍(代码示例)

不言
Lepaskan: 2018-11-14 16:16:59
ke hadapan
4331 orang telah melayarinya

本篇文章给大家带来的内容是关于ES6中Map的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

概述

Map也是一个新的数据结构,在js中其实也经常用到,比如下面的栗子,我们经常这么使用一个对象,与其说他是对象,其实他更像一个Map,但是比起真正的Map,这个还是有点弱了,

let color={
    "red":"#FF0000",
    "green":"#00FF00",
    "blue":"#0000FFF"
}
color['red']
Salin selepas log masuk

初始化

new Map([iterable])
Salin selepas log masuk

初始化一个Map有一个可选的参数,该参数必须是一个可迭代对象,可迭代对象包括String、Array、Array-Like obejct(Arguments、NodeList)、Typped Array、Set、Map和用户定义的可迭代对象。

数组

new Map([[1,2],[3,4]]) // Map(2) {1 => 2, 3 => 4}
Salin selepas log masuk

添加

和对象作为Map相比,Map的键可以是任意值,甚至可以是NaN

var myMap = new Map();
var keyObj = {},
    keyFunc = function () {},
    keyString = "a string";
// 添加键
myMap.set(keyString, "和键'a string'关联的值");
myMap.set(keyObj, "和键keyObj关联的值");
myMap.set(keyFunc, "和键keyFunc关联的值");
Salin selepas log masuk

获取Map的大小

myMap.size    // 3
Salin selepas log masuk

获取

myMap.get(keyString)   // "和键'a string'关联的值"
myMap.get(keyObj)     // "和键keyObj关联的值"
myMap.get(keyFunc)      // "和键keyFunc关联的值"
Salin selepas log masuk

是否包含

myMap.has(keyString)  // true
myMap.has('1')  // false
Salin selepas log masuk

删除

myMap.delete(keyString)  // true
myMap.delete('')  // false
Salin selepas log masuk

遍历

myMap.forEach(m=>{console.log(m)})
// 和键'a string'关联的值
//  和键keyObj关联的值
//  和键keyFunc关联的值
Salin selepas log masuk

获取迭代器

let entries=myMap.entries()
entries.next().value // 和键'a string'关联的值
entries.next().value//  和键keyObj关联的值
entries.next().value//   和键keyFunc关联的值
Salin selepas log masuk

获取 key 迭代器

let keys=myMap.keys()
keys.next().value //  "a string"
keys.next().value//  function () {}
keys.next().value//   {}
Salin selepas log masuk

获取 value 迭代器

let values=myMap.values()
values.next().value // 和键'a string'关联的值
values.next().value//  和键keyObj关联的值
values.next().value//   和键keyFunc关联的值
Salin selepas log masuk

清除

mySet.clear()
Salin selepas log masuk


Atas ialah kandungan terperinci ES6中Map的用法介绍(代码示例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan