2017-04-05 47 views
0

我想構建一個以對象作爲關鍵字的查找表。但是,我發現我不能構造具有相同值的鍵來檢索表中的值。無法從具有相同值的對象的地圖中檢索值

const makeKey = (a, b) => (
 
    {a, 
 
    b,} 
 
); 
 

 
const lookup = new Map(); 
 

 
lookup.set(makeKey(1, 2), 'YES'); 
 
lookup.set(makeKey(3, 7), 'NO'); 
 
console.log(lookup.keys()); 
 

 
const k = makeKey(1, 2) 
 

 
console.log(k); 
 
console.log(lookup.get(k)); // want to get YES, get undefined instead

好像地圖使用對象的身份找到一個打擊。

如何將對象的值用作關鍵字?

+0

你可以做一個頂級的地圖與'了'爲重點,每個值是一個地圖,每個地圖都有'b'值作爲關鍵字,'YES'和'NO'值作爲值。正如你所說,地圖是以對象身份爲關鍵的,所以這取決於你的目標。 – loganfsmyth

回答

0

我最終改變生成密鑰的方式:

const makeKey = (a, b) => { 
    const k = {a, b}; 
    return `${Object.values(k)}` 
}; 

現在的關鍵是一個字符串

+0

這與'[a,b] .join(「,」)'FYI相同。我可能會走這條路線,因爲它更容易閱讀。 – loganfsmyth

相關問題