当前位置:首页 > 云服务器 > 正文

from在js中的用法有哪些?,from用法怎么用

Array.from() 方法

Array.from() 用于将类数组对象(拥有 length 属性)或可迭代对象(如 Set、Map、字符串)转换为真正的数组,它还支持第二个参数作为映射函数,执行数组元素转换。

语法: Array.from(arrayLike, mapFn?, thisArg?)

from在js中的用法有哪些?,from用法怎么用 第1张

参数说明:

参数 描述
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 编码值创建字符串。

from在js中的用法有哪些?,from用法怎么用 第2张

  • String.fromCharCode(num1, ..., numN):返回由指定 UTF-16 编码单元创建的字符串。String.fromCharCode(65, 66, 67) → "ABC"
  • String.fromCodePoint(num1, ..., numN):支持大于 0xFFFF 的码点,用于创建补充平面字符。String.fromCodePoint(0x1F600) →

Object.fromEntries()

将键值对列表转换为对象,常用于将 Map 或数组形式的键值对转为对象。

from在js中的用法有哪些?,from用法怎么用 第3张

语法: 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)。

0