解锁 JavaScript 数组的强大功能:常用方法和属性详解(下)

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

  • 三、Array的常用方法
    • `filter()`方法:过滤出符合条件的数组元素
    • `map()`方法:对数组元素进行操作并返回新的数组
    • `reduce()`和`reduceRight()`方法:聚合数组元素
    • `forEach()`方法:遍历数组并对每个元素执行指定的操作
  • 四、`Array`的常用属性
    • `length`属性:获取数组中元素的数量
    • `prototype`属性:用于实现继承和共享方法
  • 五、总结
    • 总结`Array`的常用方法和属性的重要性和用途

三、Array的常用方法

filter()方法:过滤出符合条件的数组元素

filter() 方法是用于过滤出符合条件的数组元素的常用方法。它是 JavaScript 数组的一个内置方法,接受一个回调函数作为参数,并返回一个新的数组,其中包含通过测试的元素。以下是 filter() 方法的一些特点和示例:

  1. 回调函数:filter() 方法接受一个回调函数作为参数,该回调函数会被应用到数组的每个元素上。如果回调函数返回 true,则该元素将被包含在过滤后的新数组中。

  2. 不改变原始数组:filter() 方法不会改变原始数组本身,而是返回一个新的数组,其中包含通过测试的元素。

  3. 示例:

let array = [1, 2, 3, 4, 5];
let filteredArray = array.filter(function(element) {
    return element > 3;
});
console.log(filteredArray); 

在上面的示例中,使用 filter() 方法创建了一个新的数组 filteredArray,其中只包含原始数组中大于 3 的元素。

filter() 方法是一种强大的数组操作工具,可用于根据条件筛选和提取数组中的元素。它常与其他数组方法结合使用,以实现更复杂的数据处理和操作。

map()方法:对数组元素进行操作并返回新的数组

map() 方法是用于对数组元素进行操作并返回新的数组的常用方法。它是 JavaScript 数组的一个内置方法,接受一个回调函数作为参数,并将该回调函数应用到数组的每个元素上。以下是 map() 方法的一些特点和示例:

  1. 回调函数:map() 方法接受一个回调函数作为参数,该回调函数会被应用到数组的每个元素上。回调函数接受三个参数:当前处理的元素、当前元素的索引和整个数组本身。

  2. 返回新的数组:map() 方法会对每个元素应用回调函数,并将返回值存储在新的数组中。原始数组不会被改变。

  3. 示例:

let array = [1, 2, 3, 4, 5];
let mappedArray = array.map(function(element) {
    return element * 2;
});
console.log(mappedArray); 

在上面的示例中,使用 map() 方法将原始数组中的每个元素乘以 2,并将结果存储在新的数组 mappedArray 中。

map() 方法是一种强大的数组操作工具,它允许你对数组进行批量处理和转换操作。它常用于数据处理、数据映射和其他数组元素的操作。

reduce()reduceRight()方法:聚合数组元素

reduce()reduceRight() 方法是用于聚合数组元素的常用方法。它们是 JavaScript 数组的内置方法,用于将数组中的所有元素进行聚合操作,并返回一个最终结果。以下是这两个方法的简要说明:

  1. reduce() 方法:从数组的第一个元素开始,依次将每个元素与一个累积值(初始值)进行聚合操作,将每次操作的结果作为新的累积值,直到处理完整个数组。最终返回累积值的结果。

  2. reduceRight() 方法:与 reduce() 方法类似,但它从数组的最后一个元素开始,依次将每个元素与一个累积值(初始值)进行聚合操作,将每次操作的结果作为新的累积值,直到处理完整个数组。最终返回累积值的结果。

这两个方法都接受一个回调函数作为参数,该回调函数接受两个参数:累积值和当前处理的元素。回调函数负责进行聚合操作,并返回新的累积值。以下是一个示例,展示如何使用 reduce() 方法对数组进行求和:

let array = [1, 2, 3, 4, 5];
let sum = array.reduce(function(a, b) {
    return a + b;
});
console.log(sum); 

在上面的示例中,使用 reduce() 方法将数组中的所有元素相加,并将结果存储在变量 sum 中。

reduce()reduceRight() 方法提供了一种简洁的方式来聚合数组元素,并可以应用各种聚合操作,如求和、求平均值、最大值、最小值等。它们在处理数组数据时非常有用。

forEach()方法:遍历数组并对每个元素执行指定的操作

forEach() 方法是用于遍历数组并对每个元素执行指定操作的常用方法。它是 JavaScript 数组的一个内置方法。以下是 forEach() 方法的一些特点和示例:

  1. 语法:forEach() 方法接受一个回调函数作为参数,并将该回调函数应用到数组的每个元素上。

  2. 不返回值:forEach() 方法本身不返回任何值,它主要用于对数组进行迭代和操作。

  3. 示例:

let array = [1, 2, 3, 4, 5];
array.forEach(function(element) {
    console.log(element);
});

在上面的示例中,使用 forEach() 方法遍历数组 array,并在每次迭代时将当前元素打印到控制台上。

forEach() 方法是一种用于遍历数组并对每个元素执行操作的简单方式。它常用于数据处理、事件监听、动画循环等场景。需要注意的是,forEach() 方法无法中途退出循环,并且对原始数组进行的修改可能会影响到遍历过程。如果需要在遍历过程中进行条件判断或提前退出,可以考虑使用其他方法,如 for 循环或 filter() 方法。

四、Array的常用属性

length属性:获取数组中元素的数量

length 属性是用于获取数组中元素数量的属性。它是数组的一个固有属性,返回数组中元素的个数。以下是 length 属性的一些特点和示例:

  1. 返回值:length 属性返回一个整数,表示数组中元素的数量。

  2. 示例:

let array = [1, 2, 3, 4, 5];
let length = array.length;
console.log(length); 

在上面的示例中,创建了一个包含 5 个元素的数组 array,然后通过 length 属性获取数组中元素的数量,并将结果存储在变量 length 中。

length 属性是一个简洁的方式来获取数组的大小或元素数量。它可以用于确定数组的边界、循环迭代的次数、判断数组是否为空等操作。需要注意的是,length 属性是只读的,你不能通过设置它来改变数组的长度。如果需要修改数组的长度,可以使用其他方法,如 push()pop()slice() 等来操作数组。

prototype属性:用于实现继承和共享方法

prototype 属性在 JavaScript 中用于实现继承和共享方法。它是每个构造函数的一个属性,指向一个对象,这个对象包含可以被实例共享的属性和方法。以下是 prototype 属性的一些特点和示例:

  1. 作用:通过 prototype 属性,构造函数可以为其创建的实例共享属性和方法,从而实现继承和代码重用。

  2. 示例:

function Person(name) {
    this.name = name;
}
// 在 Person 构造函数的prototype对象上添加方法
Person.prototype.sayHello = function() {
    console.log("Hello, my name is " + this.name);
};
let person1 = new Person("Alice");
let person2 = new Person("Bob");
person1.sayHello(); 
person2.sayHello(); 

在上面的示例中,创建了一个 Person 构造函数,它接收一个参数 name,并将其赋值给实例的 name 属性。然后,通过在 Person.prototype 对象上添加了一个名为 sayHello 的方法,使得所有通过 new Person() 创建的实例都共享这个方法。

prototype 属性允许你在构造函数的外部定义方法,并使这些方法在所有实例中可用。它提供了一种简洁的方式来实现继承和共享行为,减少代码的冗余。需要注意的是,通过 prototype 共享的方法是在运行时动态绑定到实例上的,而不是在编译时确定的。这意味着,当你在实例上调用共享方法时,JavaScript 会自动查找并调用 prototype 对象上的相应方法。

五、总结

总结Array的常用方法和属性的重要性和用途

JavaScript 中的 Array 是一种常见的数据结构,用于存储多个值。它提供了许多常用的方法和属性,这些方法和属性对于操作和处理数组非常重要。以下是一些 Array 的常用方法和属性的总结:

  1. length 属性length 属性用于获取数组中元素的数量。它是一个可读可写的属性,可以用来动态调整数组的大小。

  2. push() 方法push() 方法用于向数组的末尾添加一个或多个元素。它可以接受任意数量的参数,并将它们依次添加到数组的末尾。

  3. pop() 方法pop() 方法用于删除数组的最后一个元素,并返回被删除的元素。如果数组为空,则返回 undefined

  4. unshift() 方法unshift() 方法用于向数组的开头添加一个或多个元素。它会将参数添加到数组的开头,并相应地调整数组的长度。

  5. shift() 方法shift() 方法用于删除数组的第一个元素,并返回被删除的元素。如果数组为空,则返回 undefined

  6. slice() 方法slice() 方法用于创建一个新的数组副本,其中包含从原始数组中选择的元素。它接受两个参数:起始索引和结束索引(不包括结束索引)。

  7. concat() 方法concat() 方法用于将一个或多个数组连接到原始数组的末尾,返回一个新的合并后的数组。

  8. indexOf() 方法indexOf() 方法用于查找数组中第一个出现的指定元素的索引。如果未找到,则返回 -1

  9. filter() 方法filter() 方法用于创建一个新的数组,其中包含通过提供的函数实现的测试的原始数组的元素。

这些方法和属性在处理数组时非常有用,可以实现对数组的增删改查、连接、截取等操作。它们使数组的操作更加灵活和高效,并且可以根据具体需求选择合适的方法来处理数组数据。

了解和掌握这些方法和属性对于编写有效的 JavaScript 代码处理数组是至关重要的。它们提供了对数组的基本操作和功能,可以帮助你更好地管理和操作数组中的数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

摆脱油光和黑头,先敷15分钟的亚马逊白泥面膜吧

寒冷干燥的冬季,是皮肤最容易出现问题的时候,像是油性皮肤就更容易出油,另外黑头之类的问题也会变得更加常见。因此,在这个季节里,我们需要特别注意保护皮肤,多多补水保湿,同时深入清洁毛孔是非…

SpringCloud.03.网关Gateway

目录 网关Gateway的概念: 准备 使用 方式一 因为配置了网关所以可以直接通过gateway发送请求 方式二 修改配置前:http://localhost:8082/provider/run 方式三(动态路由) 导入配置类 网关Gateway的概念: Spring Cloud Gateway 是 Spri…

分布形态的度量_峰度系数的探讨

集中趋势和离散程度是数据分布的两个重要特征,但要全面了解数据分布的特点,还应掌握数据分布的形态。 描述数据分布形态的度量有偏度系数和峰度系数, 其中偏度系数描述数据的对称性,峰度系数描述与正态分布的偏离程度。 峰度系数反映分布峰的尖峭程度的重要指标. 当…

失踪人员信息发布与管理系统:计算机毕设课题的研究与实践 springboot+java+vue+mysql

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

认知觉醒(九)

认知觉醒(九) 专注力——情绪和智慧的交叉地带 第一节 情绪专注:一招提振你的注意力 用元认知来观察自己的注意力是一件很有意思的事情,相信你可以轻易观察到这种现象:身体做着A,脑子却想着B。 跑步的时候,手脚在…

力扣日记1.14-【二叉树篇】108. 将有序数组转换为二叉搜索树

力扣日记:【二叉树篇】108. 将有序数组转换为二叉搜索树 日期:2023.1.14 参考:代码随想录、力扣 108. 将有序数组转换为二叉搜索树 题目描述 难度:简单 给你一个整数数组 nums ,其中元素已经按 升序 排列,…

现代控制理论基础

在学习卡尔曼滤波、粒子滤波、隐马尔可夫模型时候,经常会提到状态方程的概念,这边联想到当时学习过的一门课程现代控制理论,这边就简单回顾一下吧。在回顾之前,串联下高等数学中微分方程的知识点。 一. 微分方程 高等数学上册第…

架构师 - 架构师是做什么的 - 学习总结

架构师核心定义 架构师是什么 架构师是业务和技术之间的桥梁 架构师的核心职责是消除不确定性、和降低复杂性 架构设计环 架构师的三个核心能力 架构师的三个关键思维 架构师主要职责 架构设计 Vs 方案设计 架构设计前期 主要任务 澄清不确定性 明确利益干系人的诉求消除冲…

10.9.2 std::function 非OO的多态实现 Page185~187

源代码&#xff1a; #include <iostream> #include <functional> #include <list>using namespace std;//使用function模板类定义一个类型&#xff0c; //该类型要求作为T的 //函数类型是参数是string,返回值是void typedef std::function <void (std::s…

全链路压测方案(一)—方案调研

一、概述 在业务系统中&#xff0c;保证系统稳定至关重要&#xff0c;直接影响线上业务稳定和性能。测试工作作为保证生产质量的最后一关&#xff0c;扮演者重要的角色。全链路压测是一种重要的测试工具和手段。可以解决系统中多环节多节点无法全流程打满流量的痛点问题&a…

Ubuntu 22.04 Cron使用

需要定时处理的场景还是比较多的&#xff0c;比如信息推送、日志清理等。 这篇文章我们来说说如何使用cron来实现定时处理&#xff0c;以及监控任务的执行。 使用 Ubuntu中使用cron&#xff0c;要用到的命令是crontab。不加sudo时&#xff0c;处理的是个人的定时任务。当加上…

pytorch集智4-情绪分类器

1 目标 从中文文本中识别出句子里的情绪。和上一章节单车预测回归问题相比&#xff0c;这个问题是分类问题&#xff0c;不是回归问题 2 神经网络分类器 2.1 如何用神经网络分类 第二章节用torch.nn.Sequantial做的回归预测器&#xff0c;输出神经元只有一个。分类器和其区别…

计算机网络期末复习(基础概念+三套卷子练习)

第一章&#xff1a;计算机网络概念 计算机网络的概念 计算机网络的定义 计算机网络是指将地理位置不同的 具有独立功能的多台计算机 及其外部设备&#xff0c;通过 通信线路链接 起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#…

【生存技能】git操作

先下载git https://git-scm.com/downloads 我这里是win64&#xff0c;下载了相应的直接安装版本 64-bit Git for Windows Setup 打开git bash 设置用户名和邮箱 查看设置的配置信息 获取本地仓库 在git bash或powershell执行git init&#xff0c;初始化当前目录成为git仓库…

精品量化公式——“区域突破”,应对当下行情较好的主图看盘策略

不多说&#xff0c;直接上效果如图&#xff1a; ► 日线表现 代码评估 技术指标代码评估&#xff1a; VAR1, VAR2, VAR3&#xff1a;这些变量是通过指数移动平均&#xff08;EMA&#xff09;计算得出的。EMA是一种常用的技术分析工具&#xff0c;用于平滑价格数据并减少市场“…

Ubuntu共享文件到win

Ubuntu共享文件到win 1、安装samba sudo apt-get install samba samba-common2、创建一个共享文件夹&#xff0c;并设置777权限 mkdir /home/qyh/share sudo chmod 777 /home/qyh/share我的用户名&#xff1a;qyh。 3、添加用户及密码 sudo smbpasswd -a qyh4、修改配置文…

操作系统复习篇

目录 一、引论 1.1、操作系统的目标 方便性&#xff1a; 有效性&#xff1a; 可扩充性&#xff1a; 开放性&#xff1a; 1.2、操作系统的作用 用户与计算机硬件系统之间的接口&#xff1a; 计算机系统资源的管理者&#xff1a; 实现对计算机资源的抽象&#xff1a; 1…

SqlAlchemy使用教程(二) 入门示例及编程步骤

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解 二、入门示例与基本编程步骤 在第一章中提到&#xff0c;Sqlalchemy提供了两套方法来访问数据库&#xff0c;由于Sqlalchemy 官方文档结构有些乱&#xff0c;对于ORM的使用步骤的描…

使用scipy处理图片——旋转任意角度

大纲 载入图片左旋转30度&#xff0c;且重新调整图片大小右旋转30度&#xff0c;且重新调整图片大小左旋转135度&#xff0c;保持图片大小不变右旋转135度&#xff0c;保持图片大小不变 在《使用numpy处理图片——90度旋转》中&#xff0c;我们使用numpy提供的方法&#xff0c;…

庆祝一年的成长

本文字数&#xff1a;2288&#xff1b;估计阅读时间&#xff1a;6 分钟 作者&#xff1a;ClickHouse Team 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 随着今年即将结束&#xff0c;我们想要向您表达衷心的感谢&#xff0c;感谢您…