关于ES6中数组新增的方法详解

yizhihongxing

关于ES6中数组新增的方法详解

ES6引入了很多新的语法和特性,其中包含了很多新的数组方法,这些方法大大增强了JavaScript处理数组的能力,本篇文章将详细介绍ES6中数组新增的方法。

本文将介绍以下14种方法:

  1. Array.from
  2. Array.of
  3. Array.prototype.copyWithin
  4. Array.prototype.fill
  5. Array.prototype.find
  6. Array.prototype.findIndex
  7. Array.prototype.entries
  8. Array.prototype.keys
  9. Array.prototype.values
  10. Array.prototype.includes
  11. Array.prototype.flat
  12. Array.prototype.flatMap
  13. Array.prototype.forEach
  14. Array.prototype.map

1. Array.from

Array.from()方法将类数组对象和可迭代对象转换为数组,返回转换后的新数组。

示例:

let str = 'hello';
let arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']

2. Array.of

Array.of()方法用于创建数组,与直接使用数组字面量有两个区别:1. 可以创建单个元素的数组;2. 不会忽略空位。

示例:

let arr1 = Array.of(3);
console.log(arr1); // [3]
let arr2 = Array.of(1, null, 'hello');
console.log(arr2); // [1, null, 'hello']

3. Array.prototype.copyWithin

copyWithin()方法将数组中指定范围的元素复制到另一个指定索引处的位置。会修改原数组。

示例:

let arr = ['a', 'b', 'c', 'd', 'e'];
arr.copyWithin(1, 3);
console.log(arr); // ['a', 'd', 'e', 'd', 'e']

4. Array.prototype.fill

fill()方法用指定的值填充数组。

示例:

let arr = new Array(3).fill(0);
console.log(arr); // [0, 0, 0]

5. Array.prototype.find

find()方法返回数组中第一个满足条件的元素,找不到返回undefined。

示例:

let arr = [1, 2, 3, 4, 5];
let result = arr.find(item => item > 3);
console.log(result); // 4

6. Array.prototype.findIndex

findIndex()方法返回数组中第一个满足条件的元素的索引,找不到返回-1。

示例:

let arr = [1, 2, 3, 4, 5];
let index = arr.findIndex(item => item > 3);
console.log(index); // 3

7. Array.prototype.entries

entries()方法返回一个迭代器对象,可以用于遍历数组中的[key, value]对。

示例:

let arr = ['a', 'b', 'c'];
let iterator = arr.entries();
console.log(iterator.next().value); // [0, 'a']
console.log(iterator.next().value); // [1, 'b']
console.log(iterator.next().value); // [2, 'c']

8. Array.prototype.keys

keys()方法返回一个迭代器对象,可以用于遍历数组中的键。

示例:

let arr = ['a', 'b', 'c'];
let iterator = arr.keys();
console.log(iterator.next().value); // 0
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2

9. Array.prototype.values

values()方法返回一个迭代器对象,可以用于遍历数组中的值。

示例:

let arr = ['a', 'b', 'c'];
let iterator = arr.values();
console.log(iterator.next().value); // 'a'
console.log(iterator.next().value); // 'b'
console.log(iterator.next().value); // 'c'

10. Array.prototype.includes

includes()方法用于判断数组是否包含指定的值,返回布尔值。

示例:

let arr = [1, 2, 3, 4, 5];
console.log(arr.includes(2)); // true
console.log(arr.includes(6)); // false

11. Array.prototype.flat

flat()方法将多维数组拍平成一维数组。

示例:

let arr1 = [1, [2, [3, 4]]];
console.log(arr1.flat()); // [1, 2, [3, 4]]
let arr2 = [1, [2, [3, 4]]];
console.log(arr2.flat(2)); // [1, 2, 3, 4]

12. Array.prototype.flatMap

flatMap()方法类似于map()方法,不同的是,先对数组中每个元素执行映射函数,然后再将返回的一维数组拍平成新的数组。

示例:

let arr = [1, 2, 3];
let result = arr.flatMap(item => [item, item * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]

13. Array.prototype.forEach

forEach()方法对数组中的每个元素执行一次给定的函数,不返回值。

示例:

let arr = [1, 2, 3];
arr.forEach(item => console.log(item));

14. Array.prototype.Map

map()方法对数组中的每个元素执行一次给定的函数,并返回新的数组。

示例:

let arr = [1, 2, 3];
let result = arr.map(item => item * 2);
console.log(result); // [2, 4, 6]

以上14种方法是ES6中新增的数组方法,这些方法可以更加方便地处理数组,提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于ES6中数组新增的方法详解 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 白夜追凶一家五口谁杀的

    白夜追凶一家五口谁杀的 最近在网上火爆一部国产剧《白夜追凶》,故事情节紧凑,悬疑丛生,随着剧情发展,一个家庭惨案的真相浮出水面,“五口之家”的死因,嫌疑人纷至沓来,真正的凶手究竟是谁? 具体情景 “五口之家”住在高档小区中一处高层公寓,一天晚上,他们中的四口发生了离奇死亡,死因各异,而最后仅有的一个幸存者——临时回家的女儿,成为了所有人仅有的希望,在公安机关…

    其他 2023年3月29日
    00
  • 详解Java语言中的抽象类与继承

    下面是“详解Java语言中的抽象类与继承”的完整攻略。 什么是抽象类 抽象类是用于继承的,不能被实例化的类。抽象类中可以包含抽象方法或者非抽象方法的实现,但是抽象类中至少需要有一个抽象方法。抽象方法没有实际的实现,只有方法定义,其具体实现由子类去完成。 抽象类与普通类的区别 抽象类不能被实例化,而普通类可以被实例化。 抽象类中可以包含抽象方法或者非抽象方法的…

    other 2023年6月26日
    00
  • linux vi命令知识点用法总结

    Linux VI命令知识点用法总结 简介 VI是Linux操作系统中最基本、最经典的文本编辑器之一,也是程序员必须熟练掌握的操作工具之一。本文将详细讲解VI命令的知识点用法,涵盖VI的基本操作、光标移动、插入与修改、删除与撤销、查找与替换、保存与退出等方面。 基本操作 VI命令是在Linux终端中运行的,要创建一个新文件或打开一个已经存在的文件,需要在终端中…

    other 2023年6月26日
    00
  • 洛克王国充值VIP没有得到梦魇蛋怎么办_解决方法推荐

    洛克王国充值VIP没有得到梦魇蛋怎么办 如果您在洛克王国中充值VIP,但没有得到梦魇蛋的话,可能是出现了一些问题。这可能会让您感到惊讶和沮丧,但是无需担心,我们将在下面的攻略中为您提供解决方法。 解决方法推荐 方法一:联系客服 如果您充值VIP但没有收到梦魇蛋,最好的解决方法是联系洛克王国的客服支持团队。他们将帮助您找到并解决这个问题。您可以在洛克王国的官方…

    other 2023年6月27日
    00
  • rabbitmq结合spring实现消息队列优先级的方法

    RabbitMQ结合Spring实现消息队列优先级的方法 1. 环境准备 首先确保你已经安装了以下软件和工具: RabbitMQ:用于消息的中间件系统。 Spring Boot:用于构建Java应用程序的框架。 2. 添加依赖 在Spring Boot项目的pom.xml文件中添加以下依赖: <dependency> <groupId&gt…

    other 2023年6月28日
    00
  • pcap文件格式解析

    pcap文件格式解析 Pcap文件格式是网络数据包捕获的标准格式,目前广泛应用于网络协议分析、网络攻击检测等领域。本文将具体介绍Pcap文件格式,以及如何解析Pcap文件。 Pcap文件格式 Pcap文件格式由Pcap全称Packet Capture。其包含两部分:文件头(Global Header)和数据包内容(Packet Data)。文件头部分包括了P…

    其他 2023年3月28日
    00
  • 【图机器学习】cs224w Lecture 16 – 图神经网络的局限性

    【图机器学习】cs224w Lecture 16-图神经网络的局限性的完整攻略 本文将为您提供【图机器学习】cs224w Lecture 16-图神经网络的局限性的完整攻略,包括图神经网络的局限性、图卷积网络的缺陷、图注意力网络的不足等内容。 图神经网络的局限性 图神经网络是一种用于处理图数据的机器学习模型,它可以对节点和边进行特征提取和表示学习。然而,图神…

    other 2023年5月6日
    00
  • SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)

    SQLyog是一款基于Windows系统的MySQL可视化工具,本文将详细讲解SQLyog的下载、安装、破解和配置教程。 下载SQLyog SQLyog官网提供了Windows 32位和64位两个版本供用户下载,用户可根据自己的系统版本选择相应的版本进行下载。 安装SQLyog 下载完成后,双击安装包开始安装。按照提示一步一步进行,注意选择安装路径和启动菜单…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部