我想使用散列表作爲圖形庫的某些對象的集合,以便我可以通過說出諸如set.remove(v2)
之類的內容來快速刪除這些對象。Javascript:訪問Hashtable的鍵的屬性
但是,我似乎無法使用這些對象,但我嘗試迭代該集合,因爲這些鍵沒有正確的屬性,即使==
顯示它們是相同的對象!
我能做些什麼來迭代設置和使用屬性或功能是鍵的一部分?
測試用例如下所示,結果相當出乎意料(對我來說)!
v1={'a':2,'b':3};
set={};
set[v1]=true;
// Access the object within set
var v2; for(var k in set) v2=k;
// At this moment, v2 and v1 should be the same object, but...
console.log(v2==v1); // returns true
console.log(JSON.stringify(v1)); // returns {"a":2,"b":3}
console.log(JSON.stringify(v2)); // returns "[object Object]" !!!
console.log(v1.a); // returns 2
console.log(v2.a); // causes error 'reference to undefined property v2.a' !!!
首先,總是使用'==='覆蓋'=='來避免類型轉換給你一個誤報。如果你運行'console.log(v2 === v1)',你會發現它們實際上不是同一個對象。 – MrMisterMan 2012-03-28 08:56:04