array.from()是javascript中将类数组或可迭代对象转为真正数组的最简洁安全方法,支持映射函数和this绑定,可处理arguments、nodelist、set、map、字符串等,但不支持普通对象。

Array.from() 是 JavaScript 中将类数组对象(如 arguments、NodeList)或可迭代对象(如 Set、Map、字符串)转为真正数组的最简洁、安全的方法。
from 的基本用法和参数结构
它接收三个参数:
- 第一个必填:要转换的类数组或可迭代对象;
- 第二个可选:映射函数,类似 map,用于对每个元素做处理;
- 第三个可选:映射函数执行时的 this 值。
语法示例:
Array.from(arrayLike, (item, index) => item * 2, thisArg)
转换常见类数组对象
类数组对象指有 length 属性、按数字索引存放元素,但没有数组方法的对象。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 转换
arguments(函数内):function fn() { return Array.from(arguments).slice(1); } - 转换 DOM 查询结果:
const buttons = Array.from(document.querySelectorAll('button'));
这样就能直接调用.forEach()、.filter()等方法 - 手动构造类数组再转换:
const fakeArr = { 0: 'a', 1: 'b', length: 2 };<br> Array.from(fakeArr); // ['a', 'b']
转换可迭代对象
只要对象实现了 [Symbol.iterator],就可用 Array.from() 转换。
- 字符串(每个字符):
Array.from('hi'); // ['h', 'i'] - Set(去重后转数组):
Array.from(new Set([1, 2, 2, 3])); // [1, 2, 3] - Map(默认转为
[key, value]数组):Array.from(new Map([['a', 1], ['b', 2]])); // [['a', 1], ['b', 2]] - 配合映射函数提取值:
Array.from(new Map([['a', 1], ['b', 2]]), ([k, v]) => v); // [1, 2]
注意点和实用技巧
相比扩展运算符 [...iterable],Array.from() 更灵活,尤其适合需要映射或处理逻辑的场景。
- 它会忽略空位(sparse array),但保留
undefined元素 - 不能直接转换普通对象(无
length或@@iterator) - 若源对象不满足条件,会抛出
TypeError - 想生成指定长度的数组并填充值?可以传入类数组结构:
Array.from({length: 3}, (_, i) => i); // [0, 1, 2]
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










