Newly available 主要ブラウザの最新版で対応済み。古いブラウザが対象外なら使用可能。

概要

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
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
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.

JavaScript
出力
「実行」ボタンを押してください

Build grouped buckets

Create arrays on demand when grouping records into a Map.

JavaScript
出力
「実行」ボタンを押してください

Reuse existing entries

Confirm that the same key does not recreate the stored value.

JavaScript
出力
「実行」ボタンを押してください

実務での使いどころ

  • Map getOrInsert() の活用

    Map にキーが存在すれば値を返し、なければデフォルト値を挿入して返すメソッド。

注意点

  • 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features