map 與 set的使用
阿新 • • 發佈:2018-08-04
是否 判斷 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 = newMap(); 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的使用