我正在嘗試使用console.log
來查看Set對象的屬性(如size
)。但是,如果我嘗試登錄該鍵的設置,我得到一個空數組:爲什麼我不能在Set或Map上使用Object.keys()?
let myMap = new Map();
myMap.set('1', 1);
myMap.set('2', 2);
myMap.set('3', 3);
let keys = Object.keys(myMap);
console.log(keys);
// Output: []
我正在嘗試使用console.log
來查看Set對象的屬性(如size
)。但是,如果我嘗試登錄該鍵的設置,我得到一個空數組:爲什麼我不能在Set或Map上使用Object.keys()?
let myMap = new Map();
myMap.set('1', 1);
myMap.set('2', 2);
myMap.set('3', 3);
let keys = Object.keys(myMap);
console.log(keys);
// Output: []
你爲什麼希望他們可:
let mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(3);
let keys = Object.keys(mySet);
console.log(keys);
// Output: []
當我使用地圖同樣的事情發生作爲關鍵? Set
和Map
規範從未承諾過。鍵/值可以使用相應的API。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Set
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map
{Map, Set}.prototype.keys()
具有另一個行爲都返回一個新的迭代器對象不帶有按鍵的數組:
Map.prototype.keys()
返回一個新的迭代器對象包含每個元素i的鍵n按照廣告訂單的地圖對象。
Set.prototype.keys()
是對相同的功能的值()函數,並返回包含用於在插入順序設置 對象中的每個元素的值的新Iterator對象。
哪些擁有枚舉屬性的'Set'有? – zeroflagL