[JavaScript] Map Object

Key-value pairs

Liv Huang
Feb 8, 2021

相較於一般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]

--

--