热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

9个提高JavaScript技能必须知道的数组方法

英文|https:javascript.plainenglish.io9-must-know-array-methods-to-boost-your-javascript-skil

英文 | https://Javascript.plainenglish.io/9-must-know-array-methods-to-boost-your-Javascript-skills-4ae1822f7751

翻译 | 杨小二

在 Javascript 中,数组是一种特殊类型的变量,可以存储不同类型的元素。Javascript 有一些内置的数组方法,它们在不同的情况下有不同的作用,如果你非常熟悉这些方法的话,将对你非常有帮助,比如,删除、添加、操作数据。了解这些方法将提升你的 Javascript 技能。

在本文中,我们将看到 9 个基本的 Javascript 数组方法,它们将帮助你正确操作数据。

9个数组方法如下:

  • some()

  • map()

  • filter()

  • find()

  • findIndex()

  • sort()

  • includes()

  • reverse()

  • concat()

1、some()

如果数组中的特定元素匹配,则 array.some() 方法将返回 true 或 false 作为输出。

当你想要匹配数组中的元素时,此方法很有用。让我们通过一个例子来理解这个方法。我们有一个包含 5 个字母的数组。

const Array = ["a", "b", "c", "d", "e"]

我们将在该数组上应用 array.some() 方法,它将输出 true 或 false。

const Array = ["a", "b", "c", "d", "e"]
Array.some(test => test === "b")
// Output will be True

2、map()

此方法将函数作为参数,并使用原始数组中每个元素的图像创建一个新数组。元素的数量将相同,但你可以对其应用任何函数。

当你想将函数应用于数组的所有元素时,此方法很有用。

假设我们有一个包含 5 个元素编号的数组,我们的任务是应用 map 方法并将所有元素乘以 2。我们可以对其应用任何功能。现在,我只是将每个元素乘以 2。

const Array = [1, 2, 4, 5, 6]
Array.map(x => x * 2 )
// output : 2
// 4
// 8
// 10
// 12

3、filter()

array.filter() 方法将一个函数作为参数,并返回一个新数组,其中,包含原始数组中与我们在参数中传递的元素相匹配的元素。其余元素被过滤掉。

当你想使用在函数中传递的特定元素filter()数组时,此方法很有用。

让我们通过一个简单的例子来理解这个方法。我们已经声明了一个有 5 个名字的数组。这些名称可以重复或不同。

const array=["Dawn", "Sam", "Eve", "John", "John"]

我们需要从数组中过滤掉名字“John”。我们想要一个只有“John”的数组。

const array=["Dawn", "Sam", "Eve", "John", "John"]
array.filter(element => element === "John")
//output : [John, John]

4、find()

array.find() 方法接受一个函数作为参数,并返回在数组中找到的满足测试函数的元素的值。否则,如果未找到测试值,它将返回 Undefined 作为输出。

需要一些例子来理解这一点吗?假设我们有一个包含关键字和值的数组。关键字表示员工姓名,值将是他们的薪水。

const array=[{name1:"John", salary:10000},{name2:"Andrew", salary:25000},{name3:"Tom", salary:10000}
]

而你的要求是找到工资为 10,000 美元的员工。

const array=[{name1:"John", salary:10000},{name2:"Andrew", salary:25000},{name3:"Tom", salary:50000}
]
array.find(elements => elements.salary=10000)

惊人的!我们传递一个函数,在该函数中,我们试图找到 10,000 的工资。如果它存在于数组中,它将输出带有关键字和值的内容部分。如果没有,它将简单地返回 undefined。

当你想在具有数千或数百万个元素的大型数组中查找值时,此 find 方法会派上用场。

5、findIndex()

如果你理解了 find 方法,那么你就会很容易理解这个方法。array.findIndex() 方法的工作方式与 find 方法相同,但它不返回值,而是返回数组中值的索引。简单来说,它输出元素在数组中的位置。

当你要查找数组中元素的索引时,此方法很有用。你想知道元素出现在哪个位置,并据此执行你未来的代码逻辑。

一个示例将帮助你清除此方法。假设我们有一个包含 20 个随机数的数组。

const array=[ 10, 6, 54, 67, 87, 89, 45, 83, 123, 90, 345, 346, 21, 56, 78, 30, 341, 98, 99, 100]

我们的任务是找到数字 123 的位置。

const array=[ 10, 6, 54, 67, 87, 89, 45, 83, 123, 90, 345, 346, 21, 56, 78, 30, 341, 98, 99, 100]
array.findIndex(elements => elements===123)
//output : 8
array.findIndex(elements => elements===101)
//output : -1

现在,你可以了解 findIndex 方法的工作原理了。它返回 8 作为输出,我们知道 123 出现在数组的第 8 个索引处。如果没有找到数字,与返回 undefined 的 find 方法不同,findIndex 方法返回 -1,它不代表任何索引。

6、sort()

array.sort() 只是将一个函数作为参数并返回一个已排序的数组。当你想对数组重新排序时,此方法非常方便。

为了理解排序方法,假设你有一个由 20 个无序随机数组成的数组。

const array=[ 10, 6, 54, 67, 87, 89, 45, 83, 123, 90, 345, 346, 21, 56, 78, 30, 341, 98, 99, 100]

你的要求是按升序重新排列数组中的数字。

const array=[ 10, 6, 54, 67, 87, 89, 45, 83, 123, 90, 345, 346, 21, 56, 78, 30, 341, 98, 99, 100]
array.sort()
//output : [ 10, 100, 123, 21, 30, 341, 345, 346, 45, 54, 56, 6, 67, 78, 83, 87, 89, 90, 98, 99 ]

sort 方法不仅适用于数字,而且在按字母顺序对字符串进行排序时也很有用。让我们假设一个场景,我们要按字母顺序对 5 个名字进行排序。

const array=["John", "Evie", "Alex", "Ryan", "Sam"]
array.sort()
//output : [ "Alex", "Evie", "John", "Ryan", "Sam" ]

7、includes()

此方法不接受任何函数,而是将一个元素作为参数,并根据该值是否存在于该特定数组中来输出 true 或 false。

当数组中有一堆元素并且你想检查该数组中是否存在特定元素时,此方法很有用。显然,我们可以使用 find 或 findIndex 方法。但有时,我们只需要执行知道元素是否存在于数组中的简单任务。

我们将举一个例子来理清我们的概念。我们有一系列包含姓名和职业的数据。

const array=[ "Computer Scientist", "Programmer", "AI Expert", "Web Developer", "App Developer", "White Hacker"]

我们的任务是找出“Programmer”是否存在于数组中。

const array=[ "Computer Scientist", "Programmer", "AI Expert", "Web Developer", "App Developer", "White Hacker"]
array.includes("Programmer")
//output : true

8、forEach()

此方法将函数作为参数,并返回与提供元素数组中的关键字匹配的元素列表。

是的,当你想使用键查找元素时,此方法对字典数组特别有用。假设有一个带有id 和 name 的数据数组。

const myAwesomeArray = [{ id: 1, name: "john" },{ id: 2, name: "Downey" },{ id: 3, name: "Karlo" },{ id: 4, name: "Harry" },
]

现在,我们需要与数组中的名称键关联的所有值的输出。

const array = [{ id: 1, name: "john" },{ id: 2, name: "Downey" },{ id: 3, name: "Karlo" },{ id: 4, name: "Harry" },
]
array.forEach(element => console.log(element.name))
//output : John
// Downey
// Karlo
// Harry

9、concat()

array.concat() 方法将另一个数组而不是任何函数或元素作为参数,并返回一个合并的数组。当我们想要将两个数组合并为一个时,此方法很有用。

例如,假设我们有 2 个包含数字的数组。

const array1 = [1, 2, 3, 4, 5]
const array2 = [6, 7, 8, 9, 10]

现在,我们的任务是将 array1 与 array2 合并。

const array1 = [1, 2, 3, 4, 5]
const array2 = [6, 7, 8, 9, 10]
array1.concat(array2)
//output : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

结论

希望你从这篇文章中学到了一些有用的东西。Javascript 中还有许多其他数组方法。你现在可以查看它们,因为你已经了解了数组方法。

感谢你的阅读。

学习更多技能

请点击下方公众号


推荐阅读
  • Struts2(六) 用Struts完成客户列表显示
    Struts完成客户列表显示所用的基础知识在之前的随笔中已经讲过。这篇是介绍如何使用Struts完成客户列表显示。下面是完成的代码执行逻辑图:抽取项目部分代码相信大家 ... [详细]
  • 目录介绍01.CoordinatorLayout滑动抖动问题描述02.滑动抖动问题分析03.自定义AppBarLayout.Behavior说明04.CoordinatorLayo ... [详细]
  • 本文探讨了使用JQuery UI可调整大小插件时遇到的一个常见问题:如何在用户调整元素大小后避免不必要的点击事件触发,导致元素被意外取消选中。 ... [详细]
  • 题目链接:https://www.acwing.com/problem/content/3662/。此题涉及一辆汽车从起点S出发,前往终点E,途中需经过多个加油站。要求计算汽车在确保能顺利抵达终点的前提下,最少需要在哪些加油站加油。 ... [详细]
  • 最近在深入学习《数据结构与算法–JavaScript描述》一书,尝试通过npmjs.org寻找合适的库作为参考,但未能找到完全符合需求的资源。因此,决定自行实现一个字典数据结构,以便日后能够直接应用。 ... [详细]
  • 本文探讨了在使用basicHttpBinding通过HTTPS发送请求时遇到的握手失败问题,分析了可能的原因及解决方案。 ... [详细]
  • C# 对象转 JSON 字符串的方法与应用
    本文介绍如何在 C# 中使用一般处理程序(ASHX)将对象转换为 JSON 字符串,并通过设置响应类型为 application/json 来确保客户端能够正确解析返回的数据。同时,文章还提供了 HTML 页面中不依赖 jQuery 的 AJAX 方法来接收和处理这些 JSON 数据的具体实现。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 题目编号:1473 时间限制:1秒 内存限制:128MB 提交次数:99 解决次数:60 ... [详细]
  • 针对上一期关于 Windows 8 的问题,我们正在积极解决。本文提供 IE6,7,8 三个版本的单文件版下载,适用于 Windows Vista/7 系统,支持 x86 和 x64 架构。欢迎大家下载并分享。 ... [详细]
  • 本文介绍了一种使用状态压缩动态规划(状压DP)解决售货员难题的方法。通过定义dp[S][i]表示状态S下以i作为终点的最小代价,详细解释了状态转移方程及其实现。 ... [详细]
  • 本文详细介绍了如何在UniApp中集成H5微信公众号支付功能,包括前置条件、API调用方法及具体实现步骤。 ... [详细]
  • 本文详细介绍了如何通过修改Lua源码或使用动态链接库(DLL)的方式实现Lua与C++之间的高级交互,包括如何编译Lua源码、添加自定义API以及在C++中加载和调用Lua脚本。 ... [详细]
  • 本文介绍了如何使用外向烧鹅IO库来封装GET请求的具体步骤,包括库的安装与配置、请求拦截器的设置以及如何在Vue项目中调用这些封装好的请求方法。 ... [详细]
  • 通过使用反射创建对象,废话不多说直接上代码usingSystem.Reflection;namespaceFactory{publicclassDALFactor ... [详细]
author-avatar
菌挥发油
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有