上一篇
from在js中的用法有哪些?,from用法怎么用
- 云服务器
- 2026-07-24
- 4
Array.from() 方法
Array.from() 用于将类数组对象(拥有 length 属性)或可迭代对象(如 Set、Map、字符串)转换为真正的数组,它还支持第二个参数作为映射函数,执行数组元素转换。
语法: Array.from(arrayLike, mapFn?, thisArg?)

参数说明:
| 参数 | 描述 |
|---|---|
| arrayLike | 需要转换的类数组或可迭代对象 |
| mapFn | 可选,每个元素调用的映射函数 |
| thisArg | 可选,执行 mapFn 时的 this 值 |
返回值: 一个新的数组实例。
常用示例
- 从字符串转换:Array.from('hello') → ['h', 'e', 'l', 'l', 'o']
- 从 Set 转换:Array.from(new Set([1,2,3])) → [1,2,3]
- 从 Map 转换:Array.from(new Map([['a',1],['b',2]])) → [['a',1],['b',2]]
- 从 arguments 转换:function f() { return Array.from(arguments); } f(1,2,3) → [1,2,3]
- 从 NodeList 转换:Array.from(document.querySelectorAll('div')) → 返回包含所有 div 元素的数组
- 使用映射函数:Array.from([1,2,3], x => x 2) → [2,4,6]
- 生成数字序列:Array.from({ length: 5 }, (_, i) => i + 1) → [1,2,3,4,5]
String.fromCharCode() 与 String.fromCodePoint()
这两个静态方法用于从 Unicode 编码值创建字符串。

- String.fromCharCode(num1, ..., numN):返回由指定 UTF-16 编码单元创建的字符串。String.fromCharCode(65, 66, 67) → "ABC"
- String.fromCodePoint(num1, ..., numN):支持大于 0xFFFF 的码点,用于创建补充平面字符。String.fromCodePoint(0x1F600) →
Object.fromEntries()
将键值对列表转换为对象,常用于将 Map 或数组形式的键值对转为对象。

语法: Object.fromEntries(iterable)
示例: Object.fromEntries([['a', 1], ['b', 2]]) → { a: 1, b: 2 }
相关问题与解答
问题1:Array.from() 与展开运算符 [...iterable] 有什么区别?
解答: 两者都可以将可迭代对象转换为数组,但 Array.from() 更灵活:
- Array.from() 接受类数组对象(如 { length: 3 }),而展开运算符需要对象具有 [Symbol.iterator] 方法。
- Array.from() 支持第二个参数进行映射转换,而展开运算符需要额外调用 map。
- 对于字符串,Array.from() 和展开运算符都能正确处理 Unicode 字符(如表情符号),但 Array.from 更直观。
问题2:如何用 Array.from() 生成一个指定长度的数组并填充初始值?
解答: 利用 Array.from() 的第二个参数(映射函数)和第一个参数为 { length: n } 的类数组对象来生成数组,生成一个长度为 5 且每个元素为 0 的数组:Array.from({ length: 5 }, () => 0) → [0,0,0,0,0],如果需要生成连续数字序列,使用 Array.from({ length: 10 }, (_, i) => i + 1)。