Mapクラスを活用する
Mapクラスを活用することで、とても簡単かつ効率的にデータを読み書きすることができる オブジェクトでも同じようなことが出来るけど、Mapクラスのほうが.set()や.delete()で扱いやすい
オブジェクトだと削除だけ特殊な書き方だったり、プロトタイプ汚染攻撃が出来てしまう脆弱性ができやすかったりする
基本的な使い方
code:js
const data = new Map();
// setでキーと値を指定して保存する
data.set('foo', 1);
// オブジェクトや配列など、任意の値を入れることができる
// キーは文字列じゃなくても大丈夫
data.set('bar', { baz: 1 });
// getでキーを元に保存した値を取得する
console.log(data.get('foo')) // 1
console.log(data.get('bar')) // { baz: 1 }
// deleteでキーを元に値を削除できる
data.delete('foo')
console.log(data.get('foo')) // undefined
JSONとして保存する方法
オブジェクトとは形式が異なるので、Map自身から出力したものしか直接読み込むことが出来ないので注意
code:js
// JSONからデータを読み込む(jsonは保存したもの)
const data = new Map(JSON.parse(json))
// Mapからデータを抽出(これを保存する)