2015-02-06 15 views
2

我在io.js在嘗試用ES6地圖,並意識到,我不能做到以下幾點:如何將任何物體上使用ES6哈希地圖,而維修器材的引用(即Java的哈希碼)

var map = new Map() 
map.set({key:"value"}, "some string"); 
map.get({key:"value"}); // undefined. I want "some string" 

這是因爲{key:「value」} === {key:「value」}爲false。

我需要能夠使用一個對象作爲一個鍵,但不要求ACTUAL對象查找像java HashMap使用hashcode和equals的值。這可能嗎?

+0

爲什麼不使用JSON.parse({key:「value」})作爲您的密鑰? – 2015-02-06 04:04:08

回答

6
  • 如果缺乏對象的身份從一個序列化,反序列化往返莖只是給他們一個唯一的ID生存這一點,使用該ID爲重點
  • 計算其屬性的子集的關鍵,如果你能確定其餘屬性取決於該子集或與您的操作無關
  • 實現您自己的散列映射和對象散列。這對主機對象可能會很棘手,但對於JSON兼容數據應該相當簡單。
  • JSON編碼在每個獲取或設置之前。它效率很低,只能用於JSON序列化對象。但比以前的選項更容易實現