Map upsert

Specification: proposal-upsert

Modules

esnext.map.get-or-insert, esnext.map.get-or-insert-computed, esnext.weak-map.get-or-insert and esnext.weak-map.get-or-insert-computed

class Map {
  getOrInsert(key: any, value: any): any;
  getOrInsertComputed(key: any, (key: any) => value: any): any;
}

class WeakMap {
  getOrInsert(key: any, value: any): any;
  getOrInsertComputed(key: any, (key: any) => value: any): any;
}

CommonJS entry points

core-js/proposals/map-upsert-v4
core-js(-pure)/actual|full/map/get-or-insert
core-js(-pure)/actual|full/map/get-or-insert-computed
core-js(-pure)/actual|full/weak-map/get-or-insert
core-js(-pure)/actual|full/weak-map/get-or-insert-computed

Examples

const map = new Map([['a', 1]]);

map.getOrInsert('a', 2); // => 1

map.getOrInsert('b', 3); // => 3

map.getOrInsertComputed('a', key => key); // => 1

map.getOrInsertComputed('c', key => key); // => 'c'

console.log(map); // => Map { 'a': 1, 'b': 3, 'c': 'c' }