ES6数组新增API

news2024/7/16 20:03:57

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.coloradmin.cn/o/1843631.html

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

相关文章

RabbitMQ 学习笔记

RabbitMQ学习笔记 一些概念 Broker :RabbitMQ服务。 virtual host: 其实就是分组。 Connection:连接,生产者消费者与Broker之间的TCP连接。 Channel:网络信道,轻量级的Connection,使用Chann…

基于SpringBoot+Vue北部湾地区助农平台设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

Centos SFTP搭建

SFTP配置、连接及挂载教程_sftp连接-CSDN博客1、确认是否安装yum list installed | grep openssh-server 2、创建用户和组 sudo groupadd tksftpgroup sudo useradd -g tksftpgroup -d /home/www/tk_data -s /sbin/nologin tksftp01 sudo passwd tksftp013. 配置SFTP注意&a…

【ElasticSearch】ElasticSearch基本概念

ES 是一个开源的高扩展的分布式全文检索引擎,它是对开源库 Luence 的封装,提供 REST API 接口 MySQL 更适合数据的存储和关系管理,即 CRUD;而 ES 更适合做海量数据的检索和分析,它可以秒级地从数据库中检索出我们感兴…

数据结构和算法之复杂度比较

数据结构和算法之复杂度比较 参考如下网址:https://www.bigocheatsheet.com/ 方便快速查询 1. 复杂度比较 2. 常见数据结构复杂度 3. 常见算法复杂度

计网课设-发送TCP数据包

一、效果展示 二、代码实现 import nmap import socket import tkinter as tk from tkinter import messagebox,Listbox from threading import Thread#获取自身IP,从而确定当前局域网范围 def get_ip_address():#创建了一个socket对象,socket.AF_INET表…

计算机网络:应用层 - 文件传输协议 FTP 电子邮件

计算机网络:应用层 - 文件传输协议 FTP & 电子邮件 文件传输协议 FTP电子邮件 文件传输协议 FTP 文件传送协议 FTP(File Transfer Protocol),曾是互联网祝频讲解上使用得最广泛的文件传送协议。 其特点是:若要存取一个文件,…

【ARMv8/v9 GIC 系列 3 -- GIC 的 类型寄存器 GICD_TYPER】

文章目录 GIC 类型寄存器 GICD_TYPERESPI_Range, 位[31:27]RSS, 位[26]No1N, 位[25]A3V, 位[24]IDBits, 位[23:19]DVIS, 位[18]LPIs, 位[17]MBIS, 位[16]NUM_LPIs, 位[15:11]SecurityExtn, 位[10]NMI, 位[9]ESPI, 位[8]CPUNumber, 位[7:5]ITLinesNumber, 位[4:0]GIC 类型寄存器…

嵌入式实验---实验四 DMA传输实验

一、实验目的 1、掌握STM32F103DMA传输程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、利用外部按键KEY1来控制DMA的传送,每按一次KEY1,DMA就传送一次数据到USART1(串口1); 2、该串口…

SAP BC OBB8 自解释字段50个字符加到100个字符的长度

开整 SE11 复制TEXT1_052 -> ZTEXT1_052 并把域 改成TEXT100 se11 修改T052 激活 报错了,是个视图的问题 参考 SAP COEP V_COEP列不一致的问题及处理_sap coep表报错-CSDN博客 更新一下 再激活成功了 但是OBB8 保存的还是50个字符长度 ,中…

Ollma本地大模型沉浸式翻译【403报错解决】

最终效果 通过Chrome的 沉浸式翻译 插件,用OpenAI通用接口调用本地的Ollma上的模型,实现本地的大模型翻译文献。 官方文档指导的Ollama的配置:一定要配置环境变量,否则会出现【403报错】

【Unity设计模式】状态编程模式

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…

PXE高效批量网络装机(补充) 实验部分

然后把防火墙、安全机制全都给关闭掉,不要让它们干扰后续的实验: 然后安装那几个需要用到的软件包: 如果重启了系统vsftpd是不能自动启动起来的,如果想让该服务每次开机都自动的启动起来,可以执行下图中的命令&#xf…

Python学习笔记15:进阶篇(四)文件的读写。

文件操作 学习编程操作中,我觉得文件操作是必不可少的一部分。不管是读书的时候学习的c,c,工作的前学的java,现在学的Python,没学过的php和go,都有文件操作的模块以及库的支持,重要性毫无疑问。…

eNSP学习——OSPF在帧中继网络中的配置

目录 主要命令 原理概述 实验目的 实验场景 实验拓扑 实验编址 实验步骤 1、基本配置 2、在帧中继上搭建OSPF网络 主要命令 //检查帧中继的虚电路状态 display fr pvc-info//检查帧中继的映射表 display fr map-info//手工指定OSPF邻居,采用单播方式发送报文 [R1]os…

这些帮助你成长的IOS应用,建议收藏

TrackIt TrackIt是一款功能丰富的任务清单、日程管理和习惯打卡应用,旨在帮助用户提高效率和专注力。通过这些功能,用户可以更好地规划时间和任务,从而实现个人目标和养成良好习惯。 在目标设定方面,SMART原则是一个常用的方法&a…

首个AI高考评测结果出炉,GPT-4o排名第二

近日,上海人工智能实验室利用其自主研发的“司南”评测体系OpenCompass,对国内外多个知名大模型进行了一场特殊的“高考”。这些来自阿里巴巴、智谱AI、Mistral等机构,以及OpenAI的GPT-4o等“考生”,接受了新课标I卷“语数外”的全…

wins系统资源监视器任务管理器运行监控CPU、内存、磁盘、网络运行状态

目录 1.Windows系统资源监视器的详细介绍2.通过任务管理器打开资源监视器3.任务管理中总体观察观察cpu、pid、应用程序、I/O次数或者说读写字节数 4.观察CPU观察cpu核心数,以及哪些占用cpu频率过高 5.观察内存观察各个应用占用的内存大小和对应线程 6.观察磁盘活动观…

hrome插件: JSONView 插件让你告别数据混乱!

在现代网页开发中,处理和查看JSON数据已经成为日常工作的一部分。对于开发者来说,如何快速、方便地查看和调试JSON数据显得尤为重要。正是在这样的背景下,JSONView插件应运而生,成为开发者们的得力助手,今天咱们来聊聊…

【机器学习】机器的登神长阶——AIGC

目录 什么是AIGC 普通用户接触AIGC网站推荐 通义千问 白马 普通用户如何用好AIGC 关键提示词的作用 AIGC的影响 就业市场: 教育领域: 创意产业: 经济活动: 社交媒体与信息传播: AIGC面临的挑战 什么是AIGC…