[英]Javascript - set all keys of a Map object to a value
我在這里有此代碼:
const myMap = new Map()
myMap.set("banana", true)
myMap.set("apple", true)
Object.keys(myMap).forEach(key => {myMap.set(key, false)})
console.log(myMap.get("banana")) // returns true should return false
console.log(myMap.get("apple")) // returns true should return false
我想將此Map
所有值設置為false
,但是它根本不起作用。
我已經嘗試過這樣的事情:
Object.keys(myMap).forEach(key => myMap[key] = false)
但這也不起作用。
有沒有辦法將Map
所有鍵填充為特定值 ?
您必須專門調用Map.set
才能在Map中設置值。 myMap[key] = value
僅適用於普通對象 。 您還應該使用myMap.keys()
獲取地圖按鍵的迭代器:
const myMap = new Map(); myMap.set("banana", true); myMap.set("apple", true); [...myMap.keys()].forEach((key) => { myMap.set(key, false); }); console.log(myMap.get("banana")); console.log(myMap.get("apple"));
Map具有用於遍歷它的.forEach()方法,您可以在這種特殊情況下使用:
const myMap = new Map(); myMap.set("banana", true); myMap.set("apple", true); myMap.forEach((value, key, map) => map.set(key, false)); console.log( "Banana:", myMap.get("banana"), "Apple:", myMap.get("apple") );
.as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;}
從MDN
調用每個元素的回調的文檔說:
forEach
方法對地圖中實際存在的每個鍵執行一次提供的callback
。 對於已刪除的密鑰,不會調用它。 但是,它針對存在但未定義的值執行。 使用三個參數調用callback
:
- 元素
value
- 元素
key
- 遍歷的
Map
對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.