Map getOrInsert()
Map.prototype.getOrInsert() はキーが存在する場合はその値を返し、存在しない場合はデフォルト値を挿入して返します。emplace パターンの簡潔な実装です。
概要
Map.prototype.getOrInsert() はキーが存在する場合はその値を返し、存在しない場合はデフォルト値を挿入して返します。emplace パターンの簡潔な実装です。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 145 | 145 | 144 | 26.2 | 145 | 26.2 | |
| ビルトインオブジェクト | ||||||
| Map インスタンスの getOrInsertComputed() メソッドは、この Map 内の指定されたキーに対応する値を返します。 キーが存在しない場合は、キーと指定されたコールバックから計算されたデフォルト値を含む新しいエントリを挿入し、挿入された値を返します。 | 145 | 145 | 144 | 26.2 | 145 | 26.2 |
| getOrInsert() は WeakMap インスタンスのメソッドで、この WeakMap 内で指定されたキーに対応する値を返します。キーが存在しない場合、指定されたデフォルト値を持つ新しい項目を挿入し、挿入された値を返します。 | 145 | 145 | 144 | 26.2 | 145 | 26.2 |
| getOrInsertComputed() は WeakMap インスタンスのメソッドで、この WeakMap 内で指定されたキーに対応する値を返します。キーが存在しない場合、指定されたコールバックから計算されたデフォルト値と共にキーを持つ新しい項目を挿入し、挿入された値を返します。 | 145 | 145 | 144 | 26.2 | 145 | 26.2 |
基本構文
const map = new Map();
map.getOrInsert('key', 'default');
// If 'key' is not in the map, set it to 'default' and return it ライブデモ
Get or insert into a Map
Use the proposal if available, otherwise fall back to a helper.
Build grouped buckets
Create arrays on demand when grouping records into a Map.
Reuse existing entries
Confirm that the same key does not recreate the stored value.
実務での使いどころ
-
Map getOrInsert() の活用
Map にキーが存在すれば値を返し、なければデフォルト値を挿入して返すメソッド。
注意点
- 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features