Map getOrInsert()
`Map` インスタンスの `getOrInsert()` メソッドは、この `Map` 内で指定されたキーに対応する値を返します。キーが存在しない場合、キーと指定された既定値を持つ新しいエントリを挿入し、挿入された値を返します。
既定値の計算が高コストである場合は、代わりに `Map.prototype.getOrInsertComputed()` を使用することを検討してください。これは、実際に必要な場合にのみ既定値を計算するためのコールバックを受け取ります。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| 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` インスタンスの `getOrInsert()` メソッドは、この `Map` 内で指定されたキーに対応する値を返します。
注意点
- 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。