【js】Array.from方法介绍与用法示例

用js写算法题的时候遇到了,初始化二维数组可以用这个

在JavaScript中,Array.from 允许我们从类数组对象(array-like objects)或可迭代对象(iterable objects)创建一个新的数组实例。

Array.from简介

Array.from 是ES6(ECMAScript 2015)中引入的一个静态方法。该方法接受三个参数,并返回一个新的数组实例。

语法

javascript 复制代码
Array.from(arrayLike[, mapFn[, thisArg]])

参数

  • arrayLike: 必需,一个类数组对象或可迭代对象,它将被转换成一个数组。
  • mapFn (可选): 一个在数组元素被映射到新数组之前对它们进行操作的函数。
  • thisArg (可选): 执行 mapFn 时使用的 this 值。

返回值

一个新的数组实例,其元素从 arrayLike 中获取。

使用Array.from的示例

示例1:从类数组对象创建数组

类数组对象是那些具有 length 属性和(或)可索引元素的对象。

javascript 复制代码
// 定义一个类数组对象
var arrayLike = {
  0: 'a',
  1: 'b',
  2: 'c',
  length: 3
};
// 使用Array.from将其转换为数组
var arr = Array.from(arrayLike);
console.log(arr); // ['a', 'b', 'c']

示例2:从字符串创建数组

字符串也是可迭代对象,因此我们可以使用 Array.from 将其转换为字符数组。

javascript 复制代码
var str = 'hello';
var arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']

示例3:使用mapFn处理元素

Array.from 允许我们在创建数组时对每个元素执行一个函数。

javascript 复制代码
var arr = Array.from([1, 2, 3], function(x) {
  return x * x;
});
console.log(arr); // [1, 4, 9]

示例4:结合箭头函数

箭头函数提供了一种更简洁的方式来编写函数表达式。

javascript 复制代码
var arr = Array.from({length: 5}, (v, i) => i * i);
console.log(arr); // [0, 1, 4, 9, 16]

在上面的示例中,我们创建了一个长度为5的数组,并使用箭头函数为每个元素赋值为其索引的平方。

结论

Array.from 是一个强大的方法,它简化了从类数组对象和可迭代对象创建数组的操作。通过提供 mapFn 参数,我们可以在数组创建过程中对元素进行转换,这使得 Array.from 在处理数据时非常灵活和高效。

相关推荐
panxianren6 小时前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
“AI国潮设计-小江”8 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
程序喵大人8 小时前
【C++入门】编译链接模型 - 01 一个 C++ 程序是怎样变成可执行文件的
开发语言·c++·编译链接模型
by209999 小时前
vector 的模拟实现:扩容与边界的详细阐述(下)
c++·经验分享·vector·动态数组
可乐鸡翅yeah_9 小时前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
sunshine22 girl9 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
福兮说9 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
菜鸟~noob23310 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
Ai-_Man11 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
惊讶的猫11 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python