国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript引用類型---Map

yanwei / 2184人閱讀

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

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

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

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

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

? ? ? ? iterable? 可以是一個(gè)數(shù)組或者其他 iterable 對(duì)象,其元素或?yàn)殒I值對(duì),或?yàn)閮蓚€(gè)元素的數(shù)組;每個(gè)鍵值對(duì)都會(huì)添加到新的 Map,null 會(huì)被當(dāng)做 undefined

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

size 屬性的值是一個(gè)整數(shù),表示 Map 對(duì)象有多少個(gè)鍵值對(duì)。size 是只讀屬性,它對(duì)應(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實(shí)例方法 1.set()

語(yǔ)法:myMap.set(key, value)

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

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

語(yǔ)法:myMap.get(key)

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

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

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

語(yǔ)法:myMap.has(key)

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

返回值:如果指定元素存在于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 對(duì)象中指定的元素

語(yǔ)法:myMap.delete(key)

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

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

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

語(yǔ)法:myMap.clear()

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

語(yǔ)法:myMap.entries()

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

    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() 返回一個(gè)新的 Iterator 對(duì)象。它包含按照順序插入Map對(duì)象中每個(gè)元素的key值

語(yǔ)法: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() 方法返回一個(gè)新的Iterator對(duì)象。它包含按順序插入Map對(duì)象中每個(gè)元素的value值

語(yǔ)法: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()

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

參數(shù):
? ? ? ? callback 必要,每個(gè)元素所要執(zhí)行的函數(shù)
? ? ? ? thisArg 可選,callback 執(zhí)行時(shí)其 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98454.html

相關(guān)文章

  • What's New in JavaScript

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

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

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

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

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

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

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

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

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

    hatlonely 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<