热门标签 | 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 中还有许多其他数组方法。你现在可以查看它们,因为你已经了解了数组方法。

感谢你的阅读。

学习更多技能

请点击下方公众号


推荐阅读
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
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社区 版权所有