[JavaScript] Map Object
相較於一般object:
- Map沒有任何預設key。
- Map的key與value可以放入任何形式的值。
- Map可以進行迭代。
// 建立
let mapTest = new Map();// 新增
mapTest.set('July', 7);
mapTest.set('August', 8);// 查詢key是否存在
mapTest.has('July'); // true
mapTest.has('June'); // false// 取得key對應的value
mapTest.get('August'); // 8// 查詢map有幾項key-value
mapTest.size; // 2// 刪除
mapTest.delete('August');
mapTest.size; // 1// 清空
mapTest.clear();
mapTest.size; // 0
在map中使用陣列[key, value],可透過for…of進行迭代。
let mapTest = new Map();
mapTest.set(['July', 7]);
mapTest.set(['August', 8]);for (let [key, value] of mapTest) {
console.log(key, value);
// 'July', 7
// 'August', 8
console.log(key);
// 'July'
// 'August'
console.log(value);
// 7
// 8
};
亦可使用map.keys()或map.values(),只取key或value值。
for (let key of mapTest.keys()) {
console.log(key)
};
// 'July'
// 'August'
以陣列直接印出。
console.log([...mapTest.keys()]); // ['July', 'August']
console.log([...mapTest.values()]); // [7, 8]