javascript - Ecmascript 6 map 过滤器

标签 javascript ecmascript-6

按值过滤 map 中的数据的最佳方法是什么?

我已经实现了forEach,然后将键值添加到另一个映射(因为不建议在迭代时删除映射)

theMap.forEach((value, key) => { if (value !== 'something') { otherMap.set(key, value)}})

有没有更有效的方法来按值过滤 Map?我尝试使用 lodash 过滤功能,但无法实现它......

最佳答案

最简单的方法可能是在迭代时创建一个临时数组,例如

Array.from(theMap).forEach(([key, value]) => {
  if (someFilterLogic) theMap.delete(key);
});

或者创建一个新的 map ,例如

theMap = new Map(Array.from(theMap).filter(([key, value]) => someFilterLogic));

一般来说,担心 JS 代码的“效率”最好留给分析器。不同浏览器和版本之间的高效程度差异很大。除非您已经分析并明确知道某些内容是瓶颈,或者使用真正不正确的算法运行时编写了代码,否则不要担心。

关于javascript - Ecmascript 6 map 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103226/

相关文章:

javascript - Eslint/Tslint 配置帮助(不包括文件)

javascript - 禁用 - 剑道列标题选择

javascript - 使用 es6 将对象的特定 Prop 合并为一个?

javascript - 检查是否登录 - React Router App ES6

javascript - 如何在 AngularJS 1.x 中将数据从组件发送到父级

javascript - 类中的 Pre ES6 静态函数

javascript - 无需刷新即可获取页面的url参数值

javascript - Mailto 链接导航到不同的网址

javascript - YUI DataTable 自定义 sortFunction 问题

javascript - 具有高阶函数的递归