摘要:對象保存鍵值對。清空用于移除對象中指定的元素。執(zhí)行刪除操作返回一個值,用來表明中是否存在指定元素一樣的后面的會覆蓋前面的值把對象轉(zhuǎn)換為迭代器返回一個新的對象對象是一組鍵值對的集合,其中的鍵是弱引用的。其鍵必須是對象,而值可以是任意的。
let myMap=new Map(); let keyObj={},keyfunc=function(){},keysTring="hello word";
myMap.set(keysTring,"keysTring的關(guān)聯(lián)值") myMap.set(keyfunc,"keyfunc的關(guān)聯(lián)值") myMap.set(keyObj,"keyObj的關(guān)聯(lián)值")
console.log(myMap.size) //3
console.log(myMap.get(keysTring)) //keysTring的關(guān)聯(lián)值 console.log(myMap.get("hello word")) //keysTring的關(guān)聯(lián)值 ---------- console.log(myMap.get(keyfunc)) //keyfunc的關(guān)聯(lián)值 console.log(function(){}===keyfunc) //false console.log(myMap.get(function(){})) //undefined, 因為keyFunc !== function () {} ---------- console.log(myMap.get(keyObj)) //keyObj的關(guān)聯(lián)值 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); //使用映射對象常規(guī)的構(gòu)造函數(shù)將一個二維鍵值對數(shù)組對象轉(zhuǎn)換成一個映射關(guān)系 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"); //執(zhí)行刪除操作 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); 根據(jù)key刪除value 2.get(key);根據(jù)key獲取value 3.has(key) 根據(jù)key檢查是不是存在value 4.set(key,value) 根據(jù)key設(shè)置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
每天進步一點,希望大家喜歡,也希望喜歡的朋友點個贊,后續(xù)繼續(xù)更新...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93859.html
摘要:事實上,不僅僅是數(shù)組,任何具有接口且每個成員都是一個雙元素的數(shù)組的數(shù)據(jù)結(jié)構(gòu)都可以當(dāng)做構(gòu)造函數(shù)的參數(shù)。返回所有成員的遍歷器需要特別注意的是,的遍歷順序就是插入順序。轉(zhuǎn)為轉(zhuǎn)為,正常情況下,所有鍵名都是字符串。 Map JavaScript 的對象(Object),本質(zhì)上是鍵值對的集合(Hash 結(jié)構(gòu)),但是傳統(tǒng)上只能用字符串當(dāng)作鍵。這給它的使用帶來了很大的限制。為了解決這個問題,ES6 提...
摘要:返回一個布爾值,表示該值是否為的成員。返回鍵名的遍歷器返回鍵值的遍歷器返回鍵值對的遍歷器使用回調(diào)函數(shù)遍歷每個成員需要特別指出的是,的遍歷順序就是插入順序。該數(shù)組的所有成員,都會自動成為實例對象的成員。這意味著,數(shù)組的成員只能是對象。 1.Set ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。Set 本身是一個構(gòu)造函數(shù),用來生成 Set 數(shù)據(jù)結(jié)構(gòu)...
摘要:學(xué)習(xí)筆記工作中常用到的語法只是簡單提及和,今天有空于是寫了這篇文章深入理解中的和數(shù)據(jù)結(jié)構(gòu),與其它數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換。的提供了新的數(shù)據(jù)結(jié)構(gòu)。本身是一個構(gòu)造函數(shù),用來生成數(shù)據(jù)結(jié)構(gòu)。 文中的內(nèi)容主要是來自于阮一峰的《ES6標(biāo)準(zhǔn)入門》(第三版)?!秾W(xué)習(xí)ES6筆記──工作中常用到的ES6語法》只是簡單提及Set和Map,今天有空于是寫了這篇文章──《深入理解:ES6中的Set和Map數(shù)據(jù)結(jié)構(gòu),M...
摘要:一個對象若只被弱引用所引用,則被認(rèn)為是不可訪問或弱可訪問的,并因此可能在任何時刻被回收。也就是說,一旦不再需要,里面的鍵名對象和所對應(yīng)的鍵值對會自動消失,不用手動刪除引用。如果有錯誤或者不嚴(yán)謹(jǐn)?shù)牡胤?,請?wù)必給予指正,十分感謝。 前言 我們先從 WeakMap 的特性說起,然后聊聊 WeakMap 的一些應(yīng)用場景。 特性 1. WeakMap 只接受對象作為鍵名 const map = ...
摘要:返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。該數(shù)組中的每一項也必須是數(shù)組,內(nèi)部數(shù)組的首個項會作為鍵,第二項則為對應(yīng)值。返回所有成員的遍歷器需要特別注意的是,的遍歷順序就是插入順序。 Js大部分歷史時期都只存在一種集合類型,也就是數(shù)組類型。數(shù)組在 JS 中的使用正如其他語言的數(shù)組一樣,但缺少更多類型的集合導(dǎo)致數(shù)組也經(jīng)常被當(dāng)作隊列與棧來使用。數(shù)組只使用了數(shù)值型的索引,而...
閱讀 2183·2023-04-25 15:00
閱讀 2361·2021-11-18 13:14
閱讀 1188·2021-11-15 11:37
閱讀 3097·2021-09-24 13:55
閱讀 1234·2019-08-30 15:52
閱讀 2656·2019-08-29 12:35
閱讀 3371·2019-08-29 11:04
閱讀 1219·2019-08-26 12:13