array.from 是创建稠密数组的灵活方法,可将类数组/可迭代对象转为新数组,并支持通过 map 回调按索引生成默认值;它比 new array 安全,语义清晰且不可变。

Array.from 是 JavaScript 中创建新数组的灵活方法,它不仅能转换类数组或可迭代对象,还能配合 map 回调快速初始化指定长度、带默认值(甚至按索引计算)的数组。
基础用法:生成空占位数组
只需传入一个具有 length 属性的对象(如 { length: N }),Array.from 就会创建长度为 N 的新数组,每个元素默认为 undefined:
-
Array.from({ length: 3 })→[undefined, undefined, undefined] - 这比
new Array(3)更安全,因为后者创建的是稀疏数组(无实际元素),而Array.from创建的是稠密数组,所有索引都存在
带初始值:用 map 回调填充内容
第二个参数是映射函数,会在每个位置执行,接收 当前元素(undefined)、索引、原数组,推荐用索引生成值:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
Array.from({ length: 4 }, (_, i) => i)→[0, 1, 2, 3] -
Array.from({ length: 3 }, () => 'a')→['a', 'a', 'a'] -
Array.from({ length: 5 }, (_, i) => i * 2)→[0, 2, 4, 6, 8]
注意:避免常见误区
不要直接传数组字面量(如 [...Array(5)])替代 —— 它依赖展开运算符和稀疏数组,行为不稳定;也不要误用 Array(5).fill(0),虽然结果相似,但 Array.from 更具语义清晰性且支持动态计算逻辑。
另外,Array.from 不会修改原对象,始终返回全新数组,适合函数式编程场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










