映射对象,在单个循环中删除元素 [英] Map object, remove elements in a single loop

查看:47
本文介绍了映射对象,在单个循环中删除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在某些情况下,在单个循环中删除Map对象元素的简洁有效的方法是什么?

What is a concise and the efficient way to remove elements of a Map object in a single loop upon some condition?

可以在地图的entry()上进行迭代,但是每次迭代调用entry()看起来效率不高

Iterating on the map's entries() can do it but calling entries() at each iteration doesn't look efficient

let name_value_map = new Map([['One', 1], ['Two', 2], ['Three', 3], ['Four', 4]])

for (let pair of name_value_map.entries())
     if (pair[1] <= 3)
         name_value_map.delete(pair[0])

其他想法?

推荐答案

使用

const name_value_map = new Map([['One', 1], ['Two', 2], ['Three', 3], ['Four', 4]]);

name_value_map.forEach((v, k, m) => v <= 3 && m.delete(k));

console.log([...name_value_map.entries()]); // SO console doesn't display Map

这篇关于映射对象,在单个循环中删除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆