javascript - javascript map会造成内存泄漏吗?
问题描述
我看到许多开发人员使用 .map() 方法而不是 .forEach()。由于返回的数组未分配给引用,因此 map 不会创建未分配的内存吗?
例如:
let obj = {}
a.map(item => {
item.map((el, i) => {
obj[el] = i
})
})
解决方案
这样做是非常糟糕的做法 -无缘无故地使用map
over是错误的。应该只用于直接修改数组,而不是迭代它。垃圾收集器进来并删除由 生成的未分配数组,并且不会发生内存泄漏。该代码更好地表示为:forEach
map
map
let obj = {}
a.forEach(item => {
item.forEach((el, i) => {
obj[el] = i
});
});
甚至:
let obj = a.reduce((a, c) => ({ ...a, ...(c.reduce((A, C, i) => ({ ...A, [C]: i }))) }));
推荐阅读
- sql - SQL Oracle,选择删除文本并格式化日期
- automation - 如何将 weblogic 管理控制台参数复制到多个站点
- c# - C# .NET 应用程序的初始分发问题
- asp.net-core - RequiredIf 条件验证核心
- javascript - 根据文件扩展名覆盖 webpack 中捆绑的内容
- c++ - 如何将空格添加到 concat 预处理器宏?
- matlab - 如何在 MATLAB 中的“日期时间”数据类型和数值数据类型之间绘制一个矩形
- html - 我正在创建 html eblast,当我发送测试消息时,所有图像和视频都会从它的位置移动
- python - Python Discord.py - 检测消息是否调用任何命令
- javascript - JavaScript - 如何获取项目的 $key 的 $value?