I would like to create a map in JavaScript with two keys or need to know if there is a better solution. I need to know if key1 is part of the collection and if so get data1 and in another case I need to know if a value of type key2 is part of the collection and get its data. How do you do this in JavaScript?
Example:
const contacts = new Map();
contacts.set('key_person', {phone: "617-555-4321", address: "321 S 2nd St"});
const contacts2 = new Map();
contacts.set('key_city', {phone: "617-555-4321", address: "321 S 2nd St"});
At the moment I have maps with redundant information in order to get data by key_person and key_city. I want a joint map where I can filter for both keys at a time. Thanks you
I would create a simple class with such functionality.
class DoubleKeyedMap {
constructor() {
this.data1 = new Map();
this.data2 = new Map();
}
set(key1, key2, value) {
this.data1.set(key1, value);
this.data2.set(key2, value);
}
get(key) {
if (this.data1.get(key) !== undefined) {
return this.data1.get(key);
}
return this.data2.get(key);
}
// TODO: clear, delete, has, keys, values, entries
}
const contacts = new DoubleKeyedMap();
contacts.set("key-person", "key-city", {phone: "617-555-4321", address: "321 S 2nd St"});
contacts.get("key-city");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With