国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ES6 Map數(shù)據(jù)結(jié)構(gòu)】建議日常開發(fā)操作數(shù)組時使用 new Map

這篇具有很好參考價值的文章主要介紹了【ES6 Map數(shù)據(jù)結(jié)構(gòu)】建議日常開發(fā)操作數(shù)組時使用 new Map。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

算法使用 Map 還算是不少的,日常開發(fā)也可使用 new Map 替代某些數(shù)組操作,活到老學(xué)到老

new Map使用

JavaScript的對象(Object),本質(zhì)上是鍵值對的集合(Hash結(jié)構(gòu)),但是傳統(tǒng)上只能用字符串當(dāng)作鍵。這給它的使用帶來了很大的限制
為了解決這個問題,ES6提供了Map數(shù)據(jù)結(jié)構(gòu)。它類似于對象,也是鍵值對的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對象)都可以當(dāng)作鍵

const map = new Map();

如果 Map 的鍵是一個簡單類型的值(數(shù)字、字符串、布爾值),則只要兩個值嚴(yán)格相等,Map 將其視為一個鍵,包括0和-0。另外,雖然NaN不嚴(yán)格相等于自身,但Map將其視為同一個鍵

// new Map([key, value], [key, value]...);
const mapObj = new Map([[1,1],[2,2]]); //默認(rèn)帶初始化參數(shù)的定義

屬性及方法:

1. size屬性

console.log(mapObj.size); // size屬性返回Map結(jié)構(gòu)的成員總數(shù): 2

2. set(key,value)

set 方法設(shè)置 key 所對應(yīng)的鍵值,然后返回整個 Map 結(jié)構(gòu)。如果 key 已經(jīng)有值,則鍵值會被更新,否則就新生成該鍵

// 常用寫法
let obj = new Map();
obj.set("age", 20);
obj.set(0, "attack_type");
obj.set(undefined, "definition");

3. get(key)

get 方法用于返回某個鍵對應(yīng)的值。如果該鍵不存在,則返回 undefined

let obj = new Map();
obj.set("hello", 'Hello ES6!');
obj.get('hello'); // Hello ES6!
obj.get('word');
console.log(obj.get('word')); // undefined

4. has(key)

has 方法返回一個布爾值,表示該 Map 對象是否包含某個鍵

let obj = new Map();
obj.set("hello", 'Hello ES6!');
obj.has('hello'); // true
obj.has('word'); // false

5. delete(key)

delete 方法用于刪除某個鍵,如果該鍵存在,則返回 true,否則返回 false

let obj = new Map();
obj.set("hello", 'Hello ES6!');
obj.delete('hello'); // true
obj.delete('word'); // false

6. clear()

clear 方法用于刪除 Map 對象中的所有成員

let obj = new Map();
obj.set("hello", 'Hello ES6!');
obj.clear();

7. 遍歷方法: keys()、values()、entries()、forEach()

(1). keys()

Map.prototype.keys(): 返回一個新的 Iterator 對象,包含 Map 中所有的鍵

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

for (const key of myMap.keys()) {
  console.log(key);
}

(2). values()

Map.prototype.values(): 返回一個新的 Iterator 對象,包含 Map 中所有的值

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

for (const value of myMap.values()) {
  console.log(value);
}

(3). entries()

Map.prototype.entries(): 返回一個新的 Iterator 對象,包含Map中所有的 [鍵,值] 數(shù)組

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

for (const [key, value] of myMap.entries()) {
  console.log(key + ": " + value);
}

for (const item of myMap.entries()) {
  console.log(item);
}

(4). forEach()

Map.prototype.forEach(): 傳入一個函數(shù),該函數(shù)被調(diào)用,傳入當(dāng)前的鍵和值,以及 Map 對象本身

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

myMap.forEach((value, key, map) => {
  console.log(key, value, map);
});

8. toString()

返回一個字符串,該字符串包含一個由所有鍵值對組成的字符串,每個鍵值對由一個逗號分隔的字符串組成

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

Map.prototype.toString = function() {
  let result = '';
  for (const [key, value] of this.entries()) {
    result += `${key}: ${value}\n`;
  }
  return result;
};

console.log(myMap.toString());

9. valueOf

在調(diào)用 valueOf 方法時,Map 對象會返回自身的原始值文章來源地址http://www.zghlxwxcb.cn/news/detail-798044.html

const myMap = new Map();
myMap.set("obj", { a: 1, b: 2 })
console.log(myMap.valueOf()); // 返回 Map 對象本身

到了這里,關(guān)于【ES6 Map數(shù)據(jù)結(jié)構(gòu)】建議日常開發(fā)操作數(shù)組時使用 new Map的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JS 怎么理解ES6新增Set、Map兩種數(shù)據(jù)結(jié)構(gòu)?

    JS 怎么理解ES6新增Set、Map兩種數(shù)據(jù)結(jié)構(gòu)?

    目錄 一、前言 二、Set 1.Set數(shù)據(jù)結(jié)構(gòu)定義 2.Set數(shù)據(jù)結(jié)構(gòu)的特性 3.Set數(shù)據(jù)結(jié)構(gòu)的基本使用 4.Set遍歷數(shù)據(jù) 5.Set 的使用場景 6.WeakSet的使用 7.垃圾回收機制 三、Map 1.Map數(shù)據(jù)結(jié)構(gòu)定義 2.Map數(shù)據(jù)結(jié)構(gòu)的特性 3.Map數(shù)據(jù)結(jié)構(gòu)的基本使用 ?4.Map遍歷數(shù)據(jù) 5.Map的使用場景 6.WeakMap的使用 7.垃圾回收

    2024年02月08日
    瀏覽(27)
  • JavaScript(ES6)數(shù)據(jù)結(jié)構(gòu)與算法之樹

    6.1 概念 非線性結(jié)構(gòu) n(n=0)個節(jié)點構(gòu)成的有限集合,n=0時稱為空樹 對于任一非空樹 有一個根節(jié)點 其余節(jié)點可以構(gòu)成子樹 樹的術(shù)語: 節(jié)點的度 :節(jié)點的子樹個數(shù) 樹的度 :樹所有節(jié)點中最大的度數(shù) 葉節(jié)點 /葉子節(jié)點:度為零的節(jié)點 父節(jié)點:有子樹的的節(jié)點是子樹根節(jié)點的父節(jié)

    2024年02月04日
    瀏覽(28)
  • ES6: Map結(jié)構(gòu)

    它類似于對象,也是鍵值對的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對象)都可以當(dāng)作鍵。也就是說,Object 結(jié)構(gòu)提供了“字符串—值”的對應(yīng),Map 結(jié)構(gòu)提供了“值—值”的對應(yīng),是一種更完善的 Hash 結(jié)構(gòu)實現(xiàn)。如果你需要“鍵值對”的數(shù)據(jù)結(jié)構(gòu),Map 比

    2024年02月11日
    瀏覽(17)
  • ES6中Map集合

    Map集合是一個新的數(shù)據(jù)結(jié)構(gòu),它可以存儲鍵值對,并且可以使用任何類型的值作為鍵,包括對象、數(shù)組和函數(shù)。Map也是一種可迭代的結(jié)構(gòu),可以使用for...of循環(huán)遍歷。 在ES6中,我們可以使用Map構(gòu)造函數(shù)來創(chuàng)建一個Map集合: 我們還可以在創(chuàng)建Map時傳入一個數(shù)組,數(shù)組中包含的元

    2024年02月07日
    瀏覽(17)
  • ES6 new Map() 的用法

    ES6 new Map() 的用法

    一. 簡介: Map是一個 類似于對象 的數(shù)據(jù)類型 與常規(guī)對象和Array不同的是,它是“鍵控集合“ 它的行為有稍許不同,并且在特定的上下文中使用,它可以提供相當(dāng)大的性能優(yōu)勢 二. 案例 1. 定義Map 語法一:構(gòu)造函數(shù)--聲明時賦值 ????????參數(shù):a. 必須是二維數(shù)組, b.二維數(shù)

    2024年02月06日
    瀏覽(22)
  • 「數(shù)據(jù)結(jié)構(gòu)」Map&Set

    「數(shù)據(jù)結(jié)構(gòu)」Map&Set

    ?? 個人主頁 :Ice_Sugar_7 ?? 所屬專欄 :Java數(shù)據(jù)結(jié)構(gòu) ?? 歡迎點贊收藏加關(guān)注哦! Map和Set是專門用來進行搜索的容器或者數(shù)據(jù)結(jié)構(gòu),它們適合動態(tài)查找(即在查找時可能會進行一些插入和刪除的操作) 我們一般把搜索的數(shù)據(jù)稱為 (Key) ,和對應(yīng)的稱為 值(

    2024年02月22日
    瀏覽(24)
  • [數(shù)據(jù)結(jié)構(gòu)]-map和set

    [數(shù)據(jù)結(jié)構(gòu)]-map和set

    前言 作者 : 小蝸牛向前沖 名言 : 我可以接受失敗,但我不能接受放棄 ??如果覺的博主的文章還不錯的話,還請 點贊,收藏,關(guān)注??支持博主。如果發(fā)現(xiàn)有問題的地方歡迎?大家在評論區(qū)指正 ? 目錄 一、鍵值對 二、set 1、set的基本知識 2、set的使用? 三、map 1、map的基本

    2024年02月04日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】 Map和Set詳解

    【數(shù)據(jù)結(jié)構(gòu)】 Map和Set詳解

    Map和set是一種專門用來 進行搜索的容器或者數(shù)據(jù)結(jié)構(gòu) ,其搜索的效率與其具體的實例化子類有關(guān)。以前常見的 搜索方式有: 直接遍歷,時間復(fù)雜度為O(N),元素如果比較多效率會非常慢 二分查找,時間復(fù)雜度為 ,但搜索前必須要求序列是有序的 上述排序比較適合靜態(tài)類型的

    2024年02月09日
    瀏覽(28)
  • 深度剖析Redis九種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)原理,建議收藏

    Redis 是一個高性能的鍵值存儲系統(tǒng),支持多種數(shù)據(jù)結(jié)構(gòu)。 包含五種基本類型 String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),和三種特殊類型 Geo(地理位置)、HyperLogLog(基數(shù)統(tǒng)計)、Bitmaps(位圖)。 每種數(shù)據(jù)結(jié)構(gòu)都是為了解決特定問題而設(shè)計

    2023年04月11日
    瀏覽(20)
  • 【高階數(shù)據(jù)結(jié)構(gòu)】Map 和 Set(詳解)

    【高階數(shù)據(jù)結(jié)構(gòu)】Map 和 Set(詳解)

    (???(??? )??,我是 Scort 目前狀態(tài):大三非科班啃C++中 ??博客主頁:張小姐的貓~江湖背景 快上車??,握好方向盤跟我有一起打天下嘞! 送給自己的一句雞湯??: ??真正的大師永遠(yuǎn)懷著一顆學(xué)徒的心 作者水平很有限,如果發(fā)現(xiàn)錯誤,可在評論區(qū)指正,感謝?? ????

    2024年01月23日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包