1. 程式人生 > >map 與 set的使用

map 與 set的使用

是否 判斷 image brush code ron function for 覆蓋

1.map的使用

  • 初始化的兩種方式

a.

const map = new Map([[‘name‘,‘ouycx‘],[‘age‘, 20]]);

b.

const map = new Map();

map.set(‘name‘, ‘ouycx‘);
map.set(‘age‘, 20);
  • map的方法

1)set添加值

map.set(‘age‘, 20);

技術分享圖片

註意: 如果添加的值跟已添加的key值一樣,會覆蓋:

const map = new Map();

map.set(‘name‘, ‘ouycx‘);
map.set(‘age‘, 20);
map.set(
‘name‘,‘test‘);

技術分享圖片

2) get獲取值

map.get(‘age‘)

技術分享圖片

3) delete刪除某個key

map.delete(‘age‘)

map.delete(‘age‘) 如果刪除成功返回的是true,剩下鍵值為name的屬性值,如圖:

技術分享圖片

4) has判斷某個屬性是否在map裏面,存在返回true,不存在返回false

map.has(‘name‘)

技術分享圖片

5) clear 清除所有的屬性值

map.clear();

技術分享圖片

  • 遍歷map輸出值

我常用的是for ... of , forEach方法:

1) for .. of

const map = new
Map(); map.set(‘name‘, ‘ouycx‘); map.set(‘age‘, 20); for(let [key, val] of map){ console.log("key:" + key + " value:" + val); }

2) forEach

const map = new Map();

map.set(‘name‘, ‘ouycx‘);
map.set(‘age‘, 20);

map.forEach(function(val, key, map){
    console.log("key:" + key + "  value:" + val);
});

結果都是一樣的

技術分享圖片

2.set 的使用

  • 初始化的兩種方式

a.

var set = new Set([2,3,4,5,5,6]);

b.

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

結果都一樣:

技術分享圖片

  • set的方法

1)add 添加屬性

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

註意,添加相同的值會覆蓋

技術分享圖片

2)delete 刪除屬性

set.delete(3);

技術分享圖片

3) clear清除屬性

set.clear();

技術分享圖片

  • 遍歷屬性的方法 for... of 與 forEach

1) for ... of

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

console.log(set);

for (var s of set){
    console.log(s);
}

技術分享圖片

2) forEach

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

console.log(set);

set.forEach(function(v, k){
    console.log("值為:" + v + " 索引為:" + k);
})

技術分享圖片

註意: value值 跟索引key 的值是一樣的。

3)可以用擴展運算符遍歷

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

console.log(...set);

技術分享圖片

map 與 set的使用