繁体   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