ES6数组新增API

ES6 为数组新增了一些非常有用的 API,这些 API 提高了数组操作的便利性和效率。以下是 ES6 给数组新增的主要 API 及其详细解释和示例:

1. Array.from()

Array.from() 方法从类数组对象或可迭代对象创建一个新的数组实例。

const arrayLike = {0: 'a',1: 'b',2: 'c',length: 3
};
const arr = Array.from(arrayLike);
console.log(arr); // 输出: ['a', 'b', 'c']const set = new Set(['a', 'b', 'c']);
const arrFromSet = Array.from(set);
console.log(arrFromSet); // 输出: ['a', 'b', 'c']

2. Array.of()

Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。

const arr1 = Array.of(1, 2, 3);
console.log(arr1); // 输出: [1, 2, 3]const arr2 = Array.of(7);
console.log(arr2); // 输出: [7]

3. Array.prototype.find()

find() 方法返回数组中满足提供的测试函数的第一个元素的值。如果没有找到满足条件的元素,则返回 undefined

const array = [5, 12, 8, 130, 44];
const found = array.find(element => element > 10);
console.log(found); // 输出: 12

4. Array.prototype.findIndex()

findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。如果没有找到满足条件的元素,则返回 -1

const array = [5, 12, 8, 130, 44];
const index = array.findIndex(element => element > 10);
console.log(index); // 输出: 1

5. Array.prototype.fill()

fill() 方法用一个固定值填充数组中从起始索引到终止索引的全部元素。

const array = [1, 2, 3, 4, 5];
array.fill(0, 2, 4);
console.log(array); // 输出: [1, 2, 0, 0, 5]

6. Array.prototype.copyWithin()

copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不修改其大小。

const array = [1, 2, 3, 4, 5];
array.copyWithin(0, 3);
console.log(array); // 输出: [4, 5, 3, 4, 5]

7. Array.prototype.entries()

entries() 方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键/值对。

const array = ['a', 'b', 'c'];
const iterator = array.entries();for (const [index, value] of iterator) {console.log(index, value); // 输出: 0 'a', 1 'b', 2 'c'
}

8. Array.prototype.keys()

keys() 方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键。

const array = ['a', 'b', 'c'];
const iterator = array.keys();for (const key of iterator) {console.log(key); // 输出: 0, 1, 2
}

9. Array.prototype.values()

values() 方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的值。

const array = ['a', 'b', 'c'];
const iterator = array.values();for (const value of iterator) {console.log(value); // 输出: 'a', 'b', 'c'
}

10. Array.prototype.includes()

includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则返回 false

const array = [1, 2, 3];
console.log(array.includes(2)); // 输出: true
console.log(array.includes(4)); // 输出: false

总结

ES6 为数组新增的这些 API 提供了更强大和简洁的操作方式,使得数组操作更加方便和直观。通过利用这些新特性,开发者可以编写出更加简洁、高效和可读的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF入门学习番外篇——C#使用WPF连接MySQL数据库

在 C# 中使用 WPF 连接 MySQL 数据库涉及几个步骤,包括安装必要的库,配置连接字符串,编写代码以执行数据库操作等。下面是一个详细的入门教程,帮助你理解如何在 WPF 应用程序中使用 MySQL 数据库。 1. 安装 MySQL 数据库连接器 …

来都来了,8个JavaScript技巧奉上

吆喝一声,如果你计算机、软件工程、电子等相关专业本科及以上学历,欢迎来共事。前后端/测试可投,技术大厂。 JavaScript 作为最流行的语言之一,其语法灵活且每年都在不断吸纳新特性,即使是一个从业多年的老手&#xff…

el-table表格变更前后根据数据值改变背景颜色

需求: 1.左侧变更前表格数据不可以编辑,并且背景色加灰 2.右侧变更后表格数据可被编辑,编辑后变更前与变更后行数据不一致,添加背景色区分 3.点击删除的时候,给变更后表格当前行,添加背景色和删除的中横…

【UML用户指南】-15-对高级结构建模-对象图

目录 1、对象图的组成 2、 对象图和类图关系 3、对对象结构建模 4、逆向工程 5、对象图构建要求 对象图对包含在类图中的事物的实例建模。 对象图显示了在某一时间点上一组对象以及它们之间的关系。 对象图用于对系统的静态设计视图或静态交互视图建模。 对某一时刻的系统…

计算机网络知识点汇总(二)

计算机网络知识点汇总 第1章计算机网络体系结构 1.1 计算机网络概述 1.1.1 计算机网络的概念 ​ 计算机网络是由若干个结点(node)和连接这些结点的链路(link)组成。网络中的结点可以是就三级、集线器、交换机、或者路由器等,网络之间通过路由器进行互联&#xf…

记一次某单位的内网渗透测试

0x01 web打点 访问漏洞url:http://www.xx.xx.com进入某医疗系统 使用越权加文件上传拿到shell 0x02 内网渗透 192.168.xx.x 管理员 通过哥斯拉上线msf 上线后进行信息收集: 网卡信息、补丁信息、杀毒进程、用户在线情况、是否存在域、翻文件查找数据库密码、浏览器保存密码…

windows桌面运维----第六天

1、操作系统蓝屏的通常解决办法有哪些? 第一种方法:重启电脑。首先尝试重启电脑,有时简单的重启可以解决临时的问题。 第二种方法:检查硬件连接。确保所有硬件设备(如内存条、硬盘、显卡等)都正确连接&am…

119.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-邮件读取与删除功能的封装

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

DNS部署与安全

一、DNS 英文全称:Domain Name Service 含义:域名服务 作用:为客户机提供域名解析服务 二、域名组成 域名组成概述 (1)如"www.sina.com.cn”是一个域名,从严格意义上讲,“sina.com.cn”…

苹果入局AI手机 iOS 18将应用AI功能

当三星、华为等国内外手机厂商都在卷着造AI手机时,智能手机大佬苹果那边确一直没什么动静。直到今年5月,距离苹果 WWDC24 全球开发者大会还有十多天时,长期关注苹果的博社记者Mark Gurman放料,iOS 18系统中将会应用一些AI功能。 从…

玩转Matlab-Simscape(初级)- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真

** 玩转Matlab-Simscape(初级)- 10 - 基于COMSOL&Simulink 凸轮机构的控制仿真 ** 目录 玩转Matlab-Simscape(初级)- 10 - 基于COMSOL&Simulink 凸轮机构的控制仿真 前言一、简介二、在Solidworks中创建3D模型&#xff…

PPT可以转换成Word吗?归纳了三种转换方式

PPT可以转换成Word吗?在当今快节奏的工作和学习环境中,不同格式文件之间的转换变得日益重要。PPT作为演示文稿制作的首选工具,广泛应用于会议演讲、教育培训等多个场景,而Word则是文档编辑与编排的基石。为了便于进一步编辑、分享…

深入解析Thrift分布式通信:架构、实现与实践

引言 在现代分布式系统中,通信效率和可扩展性是关键。Facebook开发的Thrift作为一种高效的服务框架,旨在解决不同语言和平台之间的通信问题。Thrift通过提供接口定义语言(IDL)和生成代码,实现跨语言的RPC(…

docker迁移容器

docker迁移容器 将容器保存为镜像 docker commit container-id image-name将保存好的镜像打包(保存到/path文件夹) docker save image-name > /path/image-name.tar将打包好的镜像迁移到新服务器,新服务器执行如下命令 scp -P 22 username旧服务器IP地址:/旧服务…

远程桌面无法连接,远程桌面连接登录没有成功

在信息技术领域,远程桌面连接作为一种便捷的管理和操作工具,对于企业和个人用户而言都具有极其重要的价值。然而,在实际使用过程中,远程桌面无法连接的问题时常出现,这不仅影响了工作效率,还可能对数据安全…

房间灰尘多怎么办?资深保洁推荐除尘最有效的空气净化器

家中的灰尘问题一直是许多人的烦恼,尤其是对尘螨过敏的人来说,灰尘简直是“心头之患”。常言道:“家有尘埃,心头有累。”每天打扫灰尘成了许多人的烦恼,尤其是对尘螨过敏的人来说,灰尘简直是“心头之患”。…

酷得智能 电子方案开发 单片机方案定制

手持小风扇电子方案开发,东莞酷得智能科技有限公司为您服务 东莞市酷得智能科技有限公司 在消费类电子市场深耕多年,依托于市场团队对市场的敏锐度、工程团队的技术积累、结合自身的创新以及和上游原厂深度合作,在2.4G通信、BLE、语音、马达…

基于TCAD与紧凑模型结合方法探究陷阱对AlGaN/GaN HEMTs功率附加效率及线性度的影响

来源:Investigation of Traps Impact on PAE and Linearity of AlGaN/GaN HEMTs Relying on a Combined TCAD–Compact Model Approach(TED 24年) 摘要 本文提出了一种新型建模方法,用于分析GaN HEMTs的微波功率性能。通过结合工…

Vue 表格动态添加行/删除行

<template><div class"elife-container"><el-row :gutter"10" class"mb8"><el-col :span"1.5"><el-button type"primary" plain size"mini" click"handleAdd">新增</…

代码随想录算法训练营Day44|322.零钱兑换、279.完全平方数、139.单词拆分

零钱兑换 322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 本题是完全背包问题 dp数组表示组成amount金额所需的最少硬币个数。 考虑dp数组的推导公式&#xff0c;由于是计算最少硬币的个数&#xff0c;所以需要考虑dp[i-coins[j]1和dp[i]的较小值。所以dp[i] min(…