Es6 Map有没有比较快的方法同时删除多个

let aa=new Map();
aa.set('a','a');
aa.set('b','a');
aa.set('c','a');
aa.set('d','a');
aa.set('e','a');
aa.set('f','a');

比如我想删除前三个,只能一个一个遍历去删除吗?

阅读 2.8k
2 个回答

写法一:

aa = new Map(Array.from(aa).slice(3));

写法二:

for (let i = 0; i < 3; i ++) {
    aa.delete(aa.keys().next());
}

我觉得这个问题的关键在于:以 Map 的设计目标,本来就不打算能方便的删除“前三个”。所以,如果开发的过程中很不舒服,不妨考虑下是否数据结构没选好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题