Map.prototype.getOrInsertComputed() - JavaScript | MDN

Try it

const map = new Map([["bar", "foo"]]);
const defaultCreator = (key) => `default for ${key}`;

console.log(map.getOrInsertComputed("bar", defaultCreator));
// Expected output: "foo"

console.log(map.getOrInsertComputed("baz", defaultCreator));
// Expected output: "default for baz"

Syntax

js

getOrInsertComputed(key, callback)

Parameters

key

The key of the element to return from the Map object. Object keys are compared by reference, not by value.

callback

A function that returns the value to insert and return if the key is not already present in the Map object. The function is called with the following argument:

key

The same key that was passed to getOrInsertComputed().

Return value

The value associated with the specified key in the Map object. If the key can't be found, the result of callback(key) is inserted and returned.

Exceptions

TypeError

Thrown if callback isn't callable.

Examples

Avoiding unnecessary default computation

When using Map.prototype.getOrInsert(), the default value is computed every time, even if it is not needed. With getOrInsertComputed(), the default value is only computed when necessary.

js

const map = new Map([["bar", "foo"]]);
const defaultCreator = (key) => {
  console.log(`Creating default for ${key}`);
  return `default for ${key}`;
};

map.getOrInsert("bar", defaultCreator("bar")); // Logs "Creating default for bar"
map.getOrInsertComputed("bar", defaultCreator); // No log

Specifications

Specification
ECMAScript® 2027 Language Specification
# sec-map.prototype.getorinsertcomputed

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.