set():两个参数一个是key一个是value ----set() 方法为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。 -----语法: myMap.set(key, value); —返回值 Map对象
var myMap = new Map(); // 将一个新元素添加到 Map 对象 myMap.set("bar", "foo"); myMap.set(1, "foobar"); // 在Map对象中更新某个元素的值 myMap.set("bar", "baz"); 链式使用set // Add new elements to the map with chaining. myMap.set('bar', 'foo') .set(1, 'foobar') .set(2, 'baz');—参数
必须参数,也是它唯一的参数,要从目标 Map 对象中获取的元素的键。 —返回值返回一个 Map 对象中与指定键相关联的值,如果找不到这个键则返回 undefined。 var myMap = new Map(); myMap.set("bar", "foo"); myMap.get("bar"); // 返回 "foo" myMap.get("baz"); // 返回 undefined—clear()方法会移除Map对象中的所有元素。
语法 myMap.clear(); 返回值 undefined. var myMap = new Map(); myMap.set("bar", "baz"); myMap.set(1, "foo"); myMap.size; // 2 myMap.has("bar"); // true myMap.clear(); myMap.size; // 0 myMap.has("bar") // false—delete() 方法用于移除 Map 对象中指定的元素。
语法: myMap.delete(key);参数:key—必须。从 Map 对象中移除的元素的键。
返回值:Boolean ----如果 Map 对象中存在该元素,则移除它并返回 true;否则如果-----该元素不存在则返回 false。
实例:
var myMap = new Map(); myMap.set("bar", "foo"); myMap.delete("bar"); // 返回 true。成功地移除元素 myMap.has("bar"); // 返回 false。"bar" 元素将不再存在于 Map 实例中entries() 方法返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同。 -语法:
myMap.entries()-返回值 一个新的 Map 迭代器对象.
例子 var myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); var mapIter = myMap.entries(); console.log(mapIter.next().value); // ["0", "foo"] console.log(mapIter.next().value); // [1, "bar"] console.log(mapIter.next().value); // [Object, "baz"]–forEach() 方法将会以插入顺序对 Map 对象中的每一个键值对执行一次参数中提供的回调函数。
语法 myMap.forEach(callback[, thisArg]) 参数–callback 必要,每个元素所要执行的函数。 –thisArg 可选,callback 执行时其 this 的值。
返回值undefinedforEach 方法将对 Map 中真实存在的每一个元素执行一次参数中提供的回调函数,它不会对任何已经被删除的元素执行调用。 然而,它还会对键存在而值为 undefined 的元素执行调用。
callback 函数有三个参数: value - 元素的值 key - 元素的键 Map - 当前正在被遍历的对象 例子 function logMapElements(value, key, map) { console.log("m[" + key + "] = " + value); } Map([["foo", 3], ["bar", {}], ["baz", undefined]]).forEach(logMapElements); // logs: // "m[foo] = 3" // "m[bar] = [object Object]" // "m[baz] = undefined"Boolean 如果指定元素存在于Map中,则返回true。其他情况返回false
一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值,Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是,Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算,Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突;
