如何解决如何根据条件执行map.delete方法JavaScript
我有两个地图,如何删除地图1中没有键的地图1中的条目? (值无关紧要)。到目前为止,这就是我尝试过的方法,但是当我返回地图1时,仍会返回“ excessobject”键。
const map1 = new Map ()
map1.set = (object1,1)
map1.set = (object2,2)
map1.set = (excessobject,3)
const map2 = new Map ()
map2.set = (object1,1)
map2.set = (object2,2)
for (const key of map1.keys())
map1.delete(!map2.has(key))
map1;
解决方法
因此首先,您语法错误,因为要在Map()
中设置值,您需要像map.set('something',value)
那样进行操作。在这里,您可以进一步了解Map();同样对于删除,您必须通过Key
,您是从false/true
通过!map2.has(key)
let object1 = {test:1}
let object2 = {test:2}
let excessobject = {test:3};
const map3 = new Map ()
map3.set(object1,1)
map3.set(object2,2)
map3.set(excessobject,3)
console.log(map3.size)
const map4 = new Map ()
map4.set(object1,1)
map4.set(object2,2)
for (const key of map3.keys()){
map3.delete(!map4.has(key) ? key : '')
}
console.log(map3.size)
,
查看!map2.has(key)。
该语句返回一个布尔值,它可能不是您想要的。
如果您将其扩展一些,它应该按照您想要的方式进行。
for (const key of map1.keys()){
if (!(map2.has(key)){
map1.delete(key)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。