JavaScript 中的 Map 和 Set:你不得不知的 ES6 新特性!

一、Set:值唯一性的保證

Set 對(duì)象類似于數(shù)組,但它只存儲(chǔ)唯一的值。這意味著,即使你多次添加相同的值,Set 中也只會(huì)保留一個(gè)。這使得 Set 非常適合用于去重、判斷元素是否存在等場(chǎng)景。

核心方法:

  • add(value): 向 Set 中添加一個(gè)新值。
  • delete(value): 從 Set 中刪除一個(gè)值。
  • has(value): 判斷 Set 中是否包含某個(gè)值。
  • clear(): 清空 Set 中的所有值。
  • size: 返回 Set 中元素的數(shù)量。

示例:

const mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(2); // 重復(fù)添加,只會(huì)保留一個(gè) 2
mySet.add('hello');

console.log(mySet); // Set(3) { 1, 2, 'hello' }
console.log(mySet.has(2)); // true
console.log(mySet.size); // 3
mySet.delete(2);
console.log(mySet); // Set(2) { 1, 'hello' }

應(yīng)用場(chǎng)景:

  • 數(shù)據(jù)去重:快速去除數(shù)組中的重復(fù)元素。
  • 元素存在性判斷:高效地檢查元素是否在一個(gè)集合中。
  • 唯一標(biāo)識(shí)符生成:生成一組唯一的標(biāo)識(shí)符。

二、Map:鍵值對(duì)的完美伴侶

Map 對(duì)象存儲(chǔ)鍵值對(duì),類似于對(duì)象,但它允許使用任意數(shù)據(jù)類型作為鍵,而不僅僅是字符串。這使得 Map 比對(duì)象更加靈活和強(qiáng)大。 Map 中的鍵值對(duì)按照插入順序排列,方便迭代遍歷。

核心方法:

  • set(key, value): 向 Map 中添加一個(gè)鍵值對(duì)。
  • get(key): 獲取與指定鍵關(guān)聯(lián)的值。
  • delete(key): 刪除指定鍵的鍵值對(duì)。
  • has(key): 判斷 Map 中是否包含指定鍵。
  • clear(): 清空 Map 中的所有鍵值對(duì)。
  • size: 返回 Map 中鍵值對(duì)的數(shù)量。
  • entries(), keys(), values(): 分別返回鍵值對(duì)、鍵和值的迭代器。

示例:

const myMap = new Map();
myMap.set('name', 'John');
myMap.set(1, 'one');
myMap.set({a:1}, 'object');

console.log(myMap); // Map(3) { 'name' => 'John', 1 => 'one', { a: 1 } => 'object' }
console.log(myMap.get('name')); // John
console.log(myMap.has(1)); // true
console.log(myMap.size); // 3

應(yīng)用場(chǎng)景:

  • 緩存:存儲(chǔ)數(shù)據(jù),提高程序性能。
  • 數(shù)據(jù)關(guān)聯(lián):建立不同數(shù)據(jù)之間的映射關(guān)系。
  • 對(duì)象存儲(chǔ):存儲(chǔ)復(fù)雜對(duì)象,避免對(duì)象鍵名沖突。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容