成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript引用類型---Map

yanwei / 2190人閱讀

摘要:其他情況返回方法用于移除對象中指定的元素語法參數(shù)必須,從對象中移除的元素的鍵返回值如果對象中存在該元素,則移除它并返回否則如果該元素不存在則返回返回。

一、創(chuàng)建Map對象

Map 對象保存鍵值對。任何值(對象或者原始值) 都可以作為一個鍵或一個值

1.構(gòu)造函數(shù)

語法:new Map([iterable])
參數(shù):

? ? ? ? iterable? 可以是一個數(shù)組或者其他 iterable 對象,其元素或為鍵值對,或為兩個元素的數(shù)組;每個鍵值對都會添加到新的 Map,null 會被當(dāng)做 undefined

    let arr = [1,2,3];
    let myMap = new Map(arr.entries());
    console.log(myMap.get(0)); // 1
二、Map實例屬性 1.myMap.size 可訪問屬性返回 Map 對象的元素數(shù)量

size 屬性的值是一個整數(shù),表示 Map 對象有多少個鍵值對。size 是只讀屬性,它對應(yīng)的 set 方法是 undefined,即不能改變它的值

    let myMap = new Map();
    myMap.set("a", "alpha");
    myMap.set("b", "beta");
    myMap.set("g", "gamma");
    console.log(myMap.size); // 3
三、Map實例方法 1.set()

語法:myMap.set(key, value)

參數(shù):
? ? ? ? key 必填,添加到Map對象的元素的key值
? ? ? ? value 必填,添加到Map對象的元素的value值

    let myMap = new Map();
    myMap.set("bar", "foo");
    myMap.set(1, "foobar");
    // 在Map對象中更新一個新元素
    myMap.set("bar", "baz");
2.get()

語法:myMap.get(key)

參數(shù):
? ? ? ? key 想要獲取的元素的鍵

返回值:返回一個Map對象中與指定鍵相關(guān)聯(lián)的值,如果找不到這個鍵則返回undefined

    let myMap = new Map();
    myMap.set("bar", "foo");
    console.log(myMap.get("bar"));  // "foo"
    console.log(myMap.get("baz"));  // undefined
3.has()

語法:myMap.has(key)

參數(shù):
? ? ? ? ?key 必填,用來檢測是否存在指定元素的鍵值

返回值:如果指定元素存在于Map中,則返回true。其他情況返回false

    let myMap = new Map();
    myMap.set("bar", "foo");
    console.log(myMap.has("bar"));  // returns true
    console.log(myMap.has("baz"));  // returns false
4.delete() 方法用于移除 Map 對象中指定的元素

語法:myMap.delete(key)

參數(shù):
? ? ? ? key 必須,從 Map 對象中移除的元素的鍵(key)

返回值:如果 Map 對象中存在該元素,則移除它并返回 true;否則如果該元素不存在則返回 false

    let myMap = new Map();
    myMap.set("bar", "foo");
    myMap.delete("bar"); // 返回 true。成功地移除元素
    console.log(myMap.size); // 0
5.clear()方法會移除Map對象中的所有元素

語法:myMap.clear()

    let myMap = new Map();
    myMap.set("bar","baz");
    myMap.set(1,"foo");
    console.log(myMap.size); // 2
    myMap.clear();
6.entries()

語法:myMap.entries()

返回值:返回一個新的包含[key, value]對的Iterator對象,返回的迭代器的迭代順序與Map對象的插入順序相同

    let myMap = new Map();
    myMap.set("0", "foo");
    myMap.set(1, "bar");
    myMap.set({}, "baz");

    let mapIter = myMap.entries();
    console.log(mapIter.next().value); // ["0", "foo"]
    console.log(mapIter.next().value); // [1, "bar"]
    console.log(mapIter.next().value); // [Object, "baz"]
7.keys() 返回一個新的 Iterator 對象。它包含按照順序插入Map對象中每個元素的key值

語法:myMap.keys()

    let myMap = new Map();
    myMap.set("0", "foo");
    myMap.set(1, "bar");
    myMap.set({}, "baz");

    let mapIter = myMap.keys();
    console.log(mapIter.next().value); // "0"
    console.log(mapIter.next().value); // 1
    console.log(mapIter.next().value); // Object
8.values() 方法返回一個新的Iterator對象。它包含按順序插入Map對象中每個元素的value值

語法:myMap.values()

    let myMap = new Map();
    myMap.set("0", "foo");
    myMap.set(1, "bar");
    myMap.set({}, "baz");

    let mapIter = myMap.values();
    console.log(mapIter.next().value); // "foo"
    console.log(mapIter.next().value); // "bar"
    console.log(mapIter.next().value); // "baz"
9.forEach()

語法:myMap.forEach(callback[, thisArg])

參數(shù):
? ? ? ? callback 必要,每個元素所要執(zhí)行的函數(shù)
? ? ? ? thisArg 可選,callback 執(zhí)行時其 this 的值

    let myMap = new Map([["foo", 3], ["bar", {}], ["baz", undefined]]);
    myMap.forEach((value,key,map) => {
        console.log("key =",key,",value =",value); //key = foo ,value = 3
    });

? ? ? ?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98454.html

相關(guān)文章

  • What's New in JavaScript

    摘要:在和中都保留了數(shù)組的強引用,所以在中簡單的清除變量內(nèi)存并沒有得到釋放,因為還存在引用計數(shù)。而在中,它的鍵是弱引用,不計入引用計數(shù)中,所以當(dāng)被清除之后,數(shù)組會因為引用計數(shù)為而被回收掉。其實我們主要注意的引用是不計引用計數(shù)的,就好理解了。 showImg(https://segmentfault.com/img/remote/1460000019147368?w=900&h=383); 前...

    cgh1999520 評論0 收藏0
  • 嘗試在JavaScript中構(gòu)建一個"Maybe"檢測器

    摘要:我的目的是確保所有引用的使用都是絕對安全的,編譯器會自動進行檢查。它導(dǎo)致了數(shù)不清的錯誤漏洞和系統(tǒng)崩潰,可能在之后年中造成了十億美元的損失。這個函數(shù)將使用一個表示我們希望進行轉(zhuǎn)換的函數(shù)參數(shù),并返回一個包含轉(zhuǎn)換結(jié)果的新參數(shù)。 翻譯原文出處:Building a Maybe in JavaScript 鄙人翻譯略差且略有出入,別見笑。 很多時候我們會碰到:Uncaught TypeError...

    bingo 評論0 收藏0
  • 基于JavaScript的一些函數(shù)式編程概念講解

    摘要:以此類推,不定參數(shù)的方程也就被稱為可變參數(shù)函數(shù)。一般來說,函數(shù)式編程中的值都被認為是不可變值。實現(xiàn)了函數(shù)的對象,即可以與其他對象進行對比判斷是否屬于同一類型,被稱為。半群一個擁有,即將另一個對象轉(zhuǎn)化為相同類型的函數(shù),函數(shù)的對象稱為。 原文地址譯者的Github 系列文章地址本文原作者尚未全部完成,有興趣的可以到原文或者譯文地址關(guān)注更新 Functional Programming Ja...

    scola666 評論0 收藏0
  • React 的性能優(yōu)化(一)當(dāng) PureComponent 遇上 ImmutableJS

    摘要:四是在年出的持久性數(shù)據(jù)結(jié)構(gòu)的庫,持久性指的是數(shù)據(jù)一旦創(chuàng)建,就不能再被更改,任何修改或添加刪除操作都會返回一個新的對象。避免大量使用操作,這樣會浪費性能。盡量將設(shè)計成扁平狀的。 一、痛點 在我們的印象中,React 好像就意味著組件化、高性能,我們永遠只需要關(guān)心數(shù)據(jù)整體,兩次數(shù)據(jù)之間的 UI 如何變化,則完全交給 React Virtual Dom 的 Diff 算法 去做。以至于我們很...

    plus2047 評論0 收藏0
  • javascript深拷貝(deepClone)

    摘要:實現(xiàn)實現(xiàn)一個深拷貝函數(shù),就不得不說的數(shù)值類型。類型來看下面代碼,結(jié)果會返回啥呢答案是有時候保存了元素,一不小心進行深拷貝,上面的深拷貝函數(shù)就缺少了對元素的判斷。在不同的場景下,要根據(jù)業(yè)務(wù)場景,判斷是否需要使用深拷貝。 javascript深拷貝是初學(xué)者甚至有經(jīng)驗的開發(fā)著,都會經(jīng)常遇到問題,并不能很好的理解javascript的深拷貝。 深拷貝(deepClone)? 與深拷貝相對的就是...

    hatlonely 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<