const some_object = new Map(); some_object.set('init', true); const key = 'constructor'; if(some_object.get(key)){ destroy_earth(); }
das sieht sauberer aus.
Alternativ, könnte man auch eine Funktion als Map benutzen:
const map = key => (
(key === 'foo') ? 42 :
(key === 'bar') ? 43 : undefined
)
console.assert(map('foo') === 42)
console.assert(map('bar') === 43)
console.assert(map('test') === undefined)
Solche funktionalen Maps kann man sich auch dynamisch zusammenbauen:
function empty(key) {
return undefined;
}
function set(key, value, map) {
return lookup => (key === lookup) ? value : map(lookup);
}
const map = set('foo', 42, set('bar', 43, empty))
console.assert(map('foo') === 42)
console.assert(map('bar') === 43)
console.assert(map('test') === undefined)
Ist aber syntaktisch leider nicht so schön und Lesezugriffe brauchen lineare Laufzeit.