为什么数组创建会影响数组转换?
在某些环境中,使用 new Array(count) 创建数组会出现意外行为地图方法。与使用文字语法(例如,[undefined, undefined, undefined])创建的数组不同,通过 new Array(3) 构造的数组不会使用 map 正确转换其元素。
此行为归因于未填充的数组。使用 new Array(count) 创建数组时,生成的数组的元素保持未定义状态。这与使用文字语法创建的数组不同,后者会自动用 undefined 初始化元素。
要解决此问题并确保映射正确运行,建议使用任何值填充数组元素,例如 undefined ,在尝试转换之前。 Array.prototype.fill() 方法可用于此目的。
例如,使用 new Array(count) 和 map 创建前 10 个整数的数组:
let arr = new Array(10).fill(undefined).map((val, idx) => idx);
这将产生所需的输出:
[0,1,2,3,4,5,6,7,8,9]
以上是为什么使用'map()”时'new Array(count)”的行为与数组文字不同?的详细内容。更多信息请关注PHP中文网其他相关文章!