我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript 映射器 array.flatMap()

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript 映射器 array.flatMap()

前言:

array.map() 是一个非常有用的映射函数:它接收一个数组和一个映射函数,然后返回一个新的映射数组。

然而,有一个替代 array.map()的方法:array.flatMap()(从ES2019开始可用)。这个方法给了我们映射的能力,但也可以在生成的映射数组中删除甚至添加新的项目。

1. 更加智能的映射器

有一个数字数组,我们要如何创建一个新的数组,使用每个数字加倍?

使用array.map()函数是一个好方法。

const numbers = [0, 3, 6];
const doubled = numbers.map(n => n * 2);
console.log(doubled); // logs [0, 6, 12]

numbers.map(number => 2 * number) number 数组映射到一个新的数组,其中每个数字都被翻倍。

对于需要一对一映射的情况,也就是说,映射后的数组与原始数组的项数相同,array.map()的效果非常好。

但如果我们需要将一个数组的数字翻倍,同时跳为0的项,该怎么办?

直接使用 array.map() 是不可能的,因为该方法总是创建一个映射的数组,其项数与原数组相同。但是我们可以使用 array.map()和 array.filter() 的组合。

const numbers = [0, 3, 6];
const doubled = numbers
  .filter(n => n !== 0)
  .map(n => n * 2);
console.log(doubled); // logs [6, 12]

array.map()和 array.filter() 可以解决问题,但有没有更简短的方法?

必须滴。使用 array.flatMap() 方法,只需调用一个方法就可以执行映射和删除项目。

const numbers = [0, 3, 6];
const doubled = numbers.flatMap(number => {
  return number === 0 ? [] : [2 * number];
});
console.log(doubled); // logs [6, 12]

通过只使用numbers.flatMap(),你可以将一个数组映射到另一个数组,但也可以从映射中跳过某些元素。

接着,我们来更详细地看看 array.flatMap()是如何工作的。

2. array.flatMap()

array.flatMap() 函数接受一个回调函数作为参数并返回一个新的映射数组

const mappedArray = array.flatMap((item, index, origArray) => {
  // ...
  return [value1, value2, ..., valueN];
}[, thisArg]);

回调函数在原数组中的每个iteam上被调用,有3个参数:当前项、索引和原数组。然后,回调函数返回的数组被扁平化了1层,得到的项目被添加到映射的数组中。

此外,该方法还接受第二个可选参数,表示回调内部的 this 值。

使用array.flatmap()最简单的方法是将包含项目的数组扁平化

const arrays = [[2, 4], [6]];
const flatten = arrays.flatMap(item => item);
console.log(flatten); // logs [2, 4, 6]

但是array.flatMap()除了简单的扁平化之外,还可以做更多的事情。通过控制从回调中返回的数组项的数量:

  • 通过返回一个空数组从结果数组中删除该项
  • 通过返回一个带有一个新值的数组 [newValue] 来修改映射的项
  • 通过返回一个包含多个值的数组来添加新项: [newValue1, newValue2, ...]

例如:正如你在上一节中所看到的,可以通过将项目加倍来创建一个新的数组,但同时也要删除 0。

const numbers = [0, 3, 6];
const doubled = numbers.flatMap(number => {
  return number === 0 ? [] : [2 * number];
});
console.log(doubled); // logs [6, 12]

现在,我们来看下它是怎么工作的。

如果当前项为 0,回调函数返回一个空数组 []。这意味着当被扁平化时,空数组[]没有提供任何值。

如果当前迭代项非零,则返回 [2 * number]。当扁平[2 * number]数组时,结果数组中只添加2 * number。

你也可以使用 array.flatMap()来增加映射的数组中的项目数量。

例如,下面的代码片段通过添加两倍和三倍的数字将一个数字数组映射到一个新数组:

const numbers = [1, 4];
const trippled = numbers.flatMap(number => {
  return [number, 2 * number, 3 * number];
});
console.log(trippled);
// logs [1, 2, 3, 4, 8, 12]

3. 总结

如果想把一个数组映射到一个新的数组中,同时又能控制想在新的映射数组中添加多少项,那么array.flatMap() 方法就是一个好办法。

array.flatMap(callback) 的回调函数被调用,有3个参数:当前迭代的项、索引和原始数组。然后,从回调函数返回的数组在1层深处被扁平化,得到的项目被插入到所产生的映射数组中。

到此这篇关于JavaScript 映射器array.flatMap()的文章就介绍到这了,更多相关JavaScript 映射器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript 映射器 array.flatMap()

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

云服务器ip映射

云服务器ip映射是将云服务器的ip地址映射到一个特定的主机地址,从而实现与云主机的通信。下面是一个简单的步骤:在本地计算机上创建一个本地服务器(本地的IP地址)在云主机上创建一个虚拟IP地址(本地的IP地址),以便与云服务器通信将虚拟IP地址设置为与云服务器通信的IP地址下面是一个示例:假设你已经在一个本地服务器上创建了一个虚拟IP地址,并设置云主机与其通信。那么,当云主机的DN
2023-10-26

云服务器怎么映射

云服务器是一种虚拟的存储和计算服务,可以在同一台物理服务器上运行,并且可以跨云进行访问和配置。映射操作可以使用API或数据库连接来完成。以下是一些常见的映射操作的示例:API映射:将数据库连接信息映射到云服务器上。例如,如果你将数据库连接信息写入了一个云服务,则可以在云服务器中配置该连接信息,然后将该连接信息写入数据库。数据库连接映射:将应用程序连接信息映射到云服务器上的指定位置。例如,
2023-10-26

云服务器映射端口

云服务器的映射端口可以映射为一个公共IP地址,也可以映射为一个私有IP地址。当客户端与服务器通信时,云服务器将会使用这些端口来提供相同的服务。在大多数情况下,云服务器将会使用与客户端相同的IP地址和端口,并且会在服务器与客户端之间交换数据时使用这些端口。因此,对于一些需要在云服务中提供远程访问的企业来说,映射端口是一种常见的选择。但是,对于某些情况,使用私有IP地址和映射端口可能会更加合适。例
2023-10-26

云服务器内网映射

云服务器内网映射(cloud-basedremoteaccess)是一种将云服务器集群中的数据库和应用程序与本地的本地应用程序进行数据共享和访问控制的技术。云服务器的内网映射可以通过以下步骤实现:创建数据库和应用程序:在云服务器中创建一个数据库和一个应用程序,数据库中存储所有的数据和应用程序,应用程序包括服务器、用户和权限等。创建连接:向云服务器的数据库中创建连接,并使用TCP/IP协议连接到本地
2023-10-26

云服务器映射本地

云服务器映射本地通常可以使用远程托管的数据库或者云存储服务。以下是一个基于Git的示例代码,演示了如何在本地托管和映射数据库。```javaimportorg.apache.log4j.logger;importorg.apache.log4j.;importorg.apache.log4j.file.;publicclassMySQLDriver{publicstaticvoidm
2023-10-26

云服务器映射到本地

云服务器映射到本地是通过云存储提供商的远程服务器来实现的。您可以使用云存储服务提供商提供的API或者脚本来创建映射到云服务器的实例,并将文件或文件夹映射到云服务器的存储资源上。以下是一个简单的云服务器映射到本地的示例代码:```pythonimportosasf:#要映射的服务器ass:#要映射的文件或文件夹s.plist=[]创建一个映射逻辑f.open('s','r',asf
2023-10-26

云服务器硬盘映射本地

云服务器硬盘映射是一种在云服务器上创建和管理虚拟硬盘的方法。您可以使用虚拟卷或者VHD(VirtualHomeDrive/HighPerformanceDrive)来存储和管理大量的数据,而无需将其备份到本地硬盘。使用虚拟卷可以使虚拟服务器更加容易管理,因为它可以通过虚拟硬盘来自动分割和管理数据。您可以使用虚拟卷来创建多个虚拟磁盘,并可以将这些虚拟磁盘分配给不同的应用程序。这样,您无需担心虚拟
2023-10-26

云服务器怎么映射网络

云服务器通常可以通过网关模式映射网络,以便可以通过公共云提供商的公共互联网来访问其服务器。以下是在云服务器中映射网络的步骤:选择映射模式:选择云服务器提供商的互联网连接选项,通常是https或https加密的,并选择映射模式为公共互联网。选择映射文件:在浏览器地址栏中输入云服务器提供商的域名或IP地址,可以使用默认设置。选择映射服务:选择云服务器提供商提供的映射选项,如AliceMind
2023-10-26

云服务器怎么映射服务器

云服务器是一种虚拟的资源池,可以将多个云服务器集中起来,并通过网络互相连接起来,组成一个云平台。用户可以像使用本地计算机一样使用云服务器资源,可以将多个计算机资源组成一个虚拟服务器。如果您要映射云服务器,可以使用云服务器管理工具(例如CloudStackManagementInstrumentation)来配置云服务器。在该工具中,用户可以创建并映射云服务器,包括虚拟机和容器。还可以使用Clo
2023-10-26

centos怎么映射网络驱动器

在CentOS中,你可以使用CIFS/SMB协议来映射网络驱动器。以下是具体步骤:安装CIFS Utils软件包:sudo yum install cifs-utils创建一个目录用于挂载网络驱动器:sudo mkdir /mnt/ne
2023-10-25

云服务器怎么映射端口

云服务器可以通过映射端口的方式将其与其他云平台进行通信。以下是一些步骤,可以将特定云平台上的端口映射到您的设备上:在云端配置对应的端口:将对应的服务和端口添加到云服务器的配置文件中,并设置映射端口的路由规则。在云平台上配置映射策略:在云服务器的配置文件中设置映射策略,例如使用80端口还是433端口等。在云平台中配置端口映射:将端口映射到您的设备上,并启用端口映射设置,例如在云平台的管理界
2023-10-26

在Windows中映射网络驱动器

在Windows中映射网络驱动器可以通过以下步骤实现:1. 打开“文件资源管理器”(Windows资源管理器)。2. 在资源管理器窗口的左侧导航面板中,单击“此电脑”或“计算机”。3. 在菜单栏中,单击“映射网络驱动器”按钮。4. 在“映射
2023-09-13

云服务器映射端口设置

云服务器的映射端口设置一般包括以下几个步骤:首先,需要在云主机上创建映射端口文件,可以在命令行中执行以下命令:/etc/pwdhosts然后,可以通过HTTP端口映射向导将所有端口映射到指定的端口中,例如:/etc/sudohosts-v-fpwd-i-m-psystem在云主机上,可以修改配置文件-i来修改映射端口的值,例如将其修改为-m指定端口号为"remotes
2023-10-26

亚马逊服务器端口映射

1.什么是端口映射?在亚马逊服务器上,端口映射是将外部网络请求转发到内部网络的一种方法。当您在亚马逊服务器上运行应用程序时,您需要将应用程序的端口映射到服务器的公共IP地址上,以便外部用户可以访问您的应用程序。2.如何进行端口映射?在亚马逊服务器上进行端口映射非常简单。您只需要在服务器的安全组中添加一个入站规则,将外部端口映射到内部端口即可。以下是一些简单的步骤:登录到您的亚马逊Web服务控制台。找到您...
2023-10-27

云服务器映射端口在哪

您可以使用OpenStack管理程序来找到您的云服务器映射端口。以下是一些常见的选择:GPT-ins:它可以找到所有连接到该服务器的GPT-ins端口。如果您正在寻找其他端口,请在命令行中使用"localhost:/tcp/gpT-ins./enable"来查找。如果您不确定GPT-ins的位置,请使用"gpedit.msc"来查找并手动指定GPT-ins的位置。GPIO4:它是一个Ope
2023-10-26

编程热搜

目录