我想用兩個鍵在 JavaScript 中創建一個地圖,或者需要知道是否有更好的解決方案。我需要知道 key1 是否是集合的一部分,如果是,則獲取 data1,在另一種情況下,我需要知道 key2 型別的值是否是集合的一部分并獲取其資料。你如何在 JavaScript 中做到這一點?
例子:
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"});
目前,我有帶有冗余資訊的地圖,以便通過key_person和獲取資料key_city。我想要一個聯合地圖,我可以一次過濾兩個鍵。謝謝
uj5u.com熱心網友回復:
我會創建一個具有此類功能的簡單類。
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");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/378029.html
標籤:javascript
上一篇:在已排序的JavaScript字典中查找前3個值條目?
下一篇:語法錯誤:分配給右值
