簡體   English   中英

Javascript-將Map對象的所有鍵設置為一個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM