摘要:对象保存键值对。清空用于移除对象中指定的元素。执行删除操作返回一个值,用来表明中是否存在指定元素一样的后面的会覆盖前面的值把对象转换为迭代器返回一个新的对象对象是一组键值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
let myMap=new Map();
let keyObj={},keyfunc=function(){},keysTring="hello word";
myMap.set(keysTring,"keysTring的关联值") myMap.set(keyfunc,"keyfunc的关联值") myMap.set(keyObj,"keyObj的关联值")
console.log(myMap.size) //3
console.log(myMap.get(keysTring)) //keysTring的关联值
console.log(myMap.get("hello word")) //keysTring的关联值
----------
console.log(myMap.get(keyfunc)) //keyfunc的关联值
console.log(function(){}===keyfunc) //false
console.log(myMap.get(function(){})) //undefined, 因为keyFunc !== function () {}
----------
console.log(myMap.get(keyObj)) //keyObj的关联值
console.log({}===keyObj) //false
console.log(myMap.get({})) //undefined 因为keyObj !== {}
myMap.set(NaN, "not a number");
console.log(myMap.get(NaN)) //not a number
var otherNaN=Number("foo");
console.log(otherNaN) //NaN
console.log(myMap.get(otherNaN)) //not a number 也可以取值
let kvArray = [["key1", "value1"], ["key2", "value2"]];
var myMap1 = new Map(kvArray);
//使用映射对象常规的构造函数将一个二维键值对数组对象转换成一个映射关系
console.log(myMap1) //Map { "key1" => "value1", "key2" => "value2" }
console.log(myMap1.get("key1")) //value1
console.log([...myMap1]) //[ [ "key1", "value1" ], [ "key2", "value2" ] ]
var myMap2 = new Map(kvArray);
myMap2.forEach((value,index)=>{
console.log(value+"---"+index) //value1---key1 value2---key2
})
var myMap3 = new Map(kvArray);
for(var a of myMap3){
console.log(a) //[ "key1", "value1" ] [ "key2", "value2" ]
}
for(var [key,value] of myMap3){
console.log("key:"+key+", value:"+value) //key:key1, value:value1 key:key2, value:value2
}
let clearMap=new Map();
clearMap.set("hello","word");
console.log(clearMap.size) //1
clearMap.clear(); //清空
console.log(clearMap.size) //0
let delMap=new Map();
delMap.set("hi","word");
delMap.set("hello","word");
console.log(delMap) //Map { "hi" => "word", "hello" => "word" }
delMap.delete("hi"); //执行删除操作
console.log(delMap) //Map { "hello" => "word" }
let hasMap=new Map();
hasMap.set("hi","word");
hasMap.set("hi","hello word");
console.log(hasMap) //Map { "hi" => "hello word" } 一样的key后面的value会覆盖前面的值
console.log(hasMap.has("hi")); //true
console.log(hasMap.has("hello")); //false
let entriesMap=new Map();
entriesMap.set("a","A");
entriesMap.set("b","B");
let entries=entriesMap.entries();
console.log(entries.next()); //{ value: [ "a", "A" ], done: false }
console.log(entries.next().value); //[ "b", "B" ]
console.log(entries.next()); //{ value: undefined, done: true }
let valueMap=new Map();
valueMap.set("a","A");
valueMap.set("b","B");
let values=valueMap.values();
console.log(values.next()) //{ value: "A", done: false }
console.log(values.next()) //{ value: "B", done: false }
console.log(values.next()) //{ value: undefined, done: true }
1.delete(key); 根据key删除value
2.get(key);根据key获取value
3.has(key) 根据key检查是不是存在value
4.set(key,value) 根据key设置value
let weakMap=new WeakMap();
weakMap.set("hi","word") //异常 因为WeakMap的键只能是个对象
let obj1={};
weakMap.set(obj1,"word") //正常
console.log(weakMap) //WeakMap {}
console.log(weakMap.get(obj1)) //word
console.log(weakMap.has(obj1)) //true
console.log(weakMap.delete(obj1)) //true
每天进步一点,希望大家喜欢,也希望喜欢的朋友点个赞,后续继续更新...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/93859.html
摘要:事实上,不仅仅是数组,任何具有接口且每个成员都是一个双元素的数组的数据结构都可以当做构造函数的参数。返回所有成员的遍历器需要特别注意的是,的遍历顺序就是插入顺序。转为转为,正常情况下,所有键名都是字符串。 Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。为了解决这个问题,ES6 提...
摘要:返回一个布尔值,表示该值是否为的成员。返回键名的遍历器返回键值的遍历器返回键值对的遍历器使用回调函数遍历每个成员需要特别指出的是,的遍历顺序就是插入顺序。该数组的所有成员,都会自动成为实例对象的成员。这意味着,数组的成员只能是对象。 1.Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构...
摘要:学习笔记工作中常用到的语法只是简单提及和,今天有空于是写了这篇文章深入理解中的和数据结构,与其它数据结构的互相转换。的提供了新的数据结构。本身是一个构造函数,用来生成数据结构。 文中的内容主要是来自于阮一峰的《ES6标准入门》(第三版)。《学习ES6笔记──工作中常用到的ES6语法》只是简单提及Set和Map,今天有空于是写了这篇文章──《深入理解:ES6中的Set和Map数据结构,M...
摘要:一个对象若只被弱引用所引用,则被认为是不可访问或弱可访问的,并因此可能在任何时刻被回收。也就是说,一旦不再需要,里面的键名对象和所对应的键值对会自动消失,不用手动删除引用。如果有错误或者不严谨的地方,请务必给予指正,十分感谢。 前言 我们先从 WeakMap 的特性说起,然后聊聊 WeakMap 的一些应用场景。 特性 1. WeakMap 只接受对象作为键名 const map = ...
摘要:返回一个布尔值,表示该值是否为的成员。清除所有成员,没有返回值。该数组中的每一项也必须是数组,内部数组的首个项会作为键,第二项则为对应值。返回所有成员的遍历器需要特别注意的是,的遍历顺序就是插入顺序。 Js大部分历史时期都只存在一种集合类型,也就是数组类型。数组在 JS 中的使用正如其他语言的数组一样,但缺少更多类型的集合导致数组也经常被当作队列与栈来使用。数组只使用了数值型的索引,而...
阅读 2428·2023-04-25 15:00
阅读 2628·2021-11-18 13:14
阅读 1606·2021-11-15 11:37
阅读 3400·2021-09-24 13:55
阅读 1474·2019-08-30 15:52
阅读 2851·2019-08-29 12:35
阅读 3584·2019-08-29 11:04
阅读 1473·2019-08-26 12:13