JavaScript Array(数组) 对象 功能 用法运用 详解

news/2025/3/11 13:22:26/文章来源:https://www.cnblogs.com/baisemoshui/p/18764837

JavaScript 中的 Array(数组)对象是一种特殊的对象,用于在单个变量中存储多个值。数组中的元素按顺序排列,可以通过索引(下标)来访问它们。数组是 JavaScript 中最常用的数据结构之一,提供了丰富的方法来处理集合数据。以下是对 JavaScript Array 对象的功能、用法和运用的详细解释:

一、数组的基本概念

  • 定义:数组是一种有序的集合,用于存储多个值。每个值称为数组的一个元素。
  • 索引:数组中的每个元素都有一个唯一的索引(下标),用于标识元素在数组中的位置。索引从 0 开始,依次递增。
  • 异质性:JavaScript 的数组是弱类型的,数组中可以包含不同类型的元素,如数字、字符串、对象等。

二、数组的创建

  • 使用 Array 构造函数

    let arr1 = new Array(); // 创建一个空数组
    let arr2 = new Array(3); // 创建一个长度为 3 的空数组,元素均为 undefined
    let arr3 = new Array(1, 2, 3); // 创建一个包含 1, 2, 3 的数组
    
  • 使用字面量

    let arr4 = []; // 创建一个空数组
    let arr5 = [1, 2, 3]; // 创建一个包含 1, 2, 3 的数组
    
  • 多维数组:数组中的元素也可以是数组,构成多维数组。

    let matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
    ]; // 创建一个 3x3 的二维数组
    

三、数组的访问与操作

  • 访问数组元素:通过数组的索引来访问元素。

    let arr = [1, 2, 3, 4, 5];
    console.log(arr[0]); // 输出: 1
    console.log(arr[2]); // 输出: 3
    
  • 设置数组元素:通过索引给数组元素赋值。

    arr[1] = 10;
    console.log(arr); // 输出: [1, 10, 3, 4, 5]
    
  • 数组的长度:通过 length 属性获取或设置数组的长度。

    console.log(arr.length); // 输出: 5
    arr.length = 3;
    console.log(arr); // 输出: [1, 10, 3]
    

四、数组的常用方法

1. 添加元素

  • push():在数组末尾添加一个或多个元素,并返回新的数组长度。

    let arr = [1, 2, 3];
    arr.push(4, 5);
    console.log(arr); // 输出: [1, 2, 3, 4, 5]
    
  • unshift():在数组开头添加一个或多个元素,并返回新的数组长度。

    let arr = [1, 2, 3];
    arr.unshift(0, -1);
    console.log(arr); // 输出: [-1, 0, 1, 2, 3]
    
  • splice():在数组中添加或删除元素,并返回被删除的元素组成的数组。

    let arr = [1, 2, 3, 4, 5];
    arr.splice(2, 0, 'a', 'b'); // 在索引 2 处插入 'a' 和 'b'
    console.log(arr); // 输出: [1, 2, 'a', 'b', 3, 4, 5]
    

2. 删除元素

  • pop():删除数组的最后一个元素,并返回被删除的元素。

    let arr = [1, 2, 3, 4, 5];
    let removedElement = arr.pop();
    console.log(removedElement); // 输出: 5
    console.log(arr); // 输出: [1, 2, 3, 4]
    
  • shift():删除数组的第一个元素,并返回被删除的元素。

    let arr = [1, 2, 3, 4, 5];
    let removedElement = arr.shift();
    console.log(removedElement); // 输出: 1
    console.log(arr); // 输出: [2, 3, 4, 5]
    
  • splice():通过指定索引和删除数量来删除数组中的元素。

    let arr = [1, 2, 3, 4, 5];
    arr.splice(1, 2); // 从索引 1 开始删除 2 个元素
    console.log(arr); // 输出: [1, 4, 5]
    

3. 查找元素

  • indexOf():返回数组中某个元素的第一个索引,如果不存在则返回 -1。

    let arr = [1, 2, 3, 4, 2];
    console.log(arr.indexOf(2)); // 输出: 1
    console.log(arr.indexOf(5)); // 输出: -1
    
  • includes():判断数组中是否包含某个元素,返回布尔值。

    let arr = [1, 2, 3, 4, 5];
    console.log(arr.includes(3)); // 输出: true
    console.log(arr.includes(6)); // 输出: false
    
  • find():返回数组中满足条件的第一个元素的值。

    let arr = [1, 2, 3, 4, 5];
    console.log(arr.find(element => element > 3)); // 输出: 4
    
  • findIndex():返回数组中满足条件的第一个元素的索引。

    let arr = [1, 2, 3, 4, 5];
    console.log(arr.findIndex(element => element > 3)); // 输出: 3
    

4. 遍历数组

  • for 循环:使用 for 循环遍历数组元素。

    let arr = [1, 2, 3, 4, 5];
    for (let i = 0; i < arr.length; i++) {console.log(arr[i]);
    }
    
  • for...of 循环:ES6 新增的语法,用于遍历可迭代对象(如数组、字符串、Map、Set 等)。

    let arr = [1, 2, 3, 4, 5];
    for (let element of arr) {console.log(element);
    }
    
  • forEach():对数组的每个元素执行一次提供的函数。

    let arr = [1, 2, 3, 4, 5];
    arr.forEach(element => {console.log(element);
    });
    
  • map():创建一个新数组,其结果是调用提供的函数处理每个元素后的结果。

    let arr = [1, 2, 3, 4, 5];
    let newArr = arr.map(element => element * 2);
    console.log(newArr); // 输出: [2, 4, 6, 8, 10]
    
  • filter():创建一个新数组,包含通过测试的所有元素。

    let arr = [1, 2, 3, 4, 5];
    let evenNumbers = arr.filter(element => element % 2 === 0);
    console.log(evenNumbers); // 输出: [2, 4]
    
  • reduce():对数组中的每个元素执行一个由提供的函数实现的累积器,将其结果汇总为单个返回值。

    let arr = [1, 2, 3, 4, 5];
    let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
    console.log(sum); // 输出: 15
    

5. 数组转换

  • concat():连接两个或多个数组,并返回一个新数组。

    let

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统

本文将提供一个详细的示例,展示如何调用 DeepSeek 的自然语言处理 API 接口。我们将以情感分析为例,演示如何发送请求、处理响应以及处理可能的错误。我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线…

使用 Pixi.js 插件实现探险者小游戏(一)

什么是 Pixi Pixi 是一个非常快的 2D sprite 渲染引擎。使用它你可以轻松的利用 JavaScript 和其他 HTML5 技术制作游戏和应用程序。 Pixi 的官网地址:https://pixijs.com/ 本游戏使用的是 Pixi 的 V4.5.5 版本,官网最新版本更新到了 V8.x,两个版本 API 相差很大,建议大家学…

【设计模式】利用组合模式带你走进树形结构的世界

概述对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员…

20250311

1. 沪镍还有两个上涨波段

【设计模式】从智能音箱到软件设计:探索外观模式的实际应用案例

概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于…

PMC必须要懂的四个关键流程:生产、库存、交期全过程解析!

PMC(生产计划与物料控制)这个岗位,看起来就是三个字,但实际干起来,简直是让人上蹿下跳、手忙脚乱。一边要盯着生产线, 一边要和供应商、采购、销售对接,稍微一个环节没控好,就可能导致生产停滞、库存爆仓、交期延误,直接影响公司运营。 很多PMC天天在救火,但其实掌握…

JavaScript HTML DOM - 改变 HTML 功能 用法运用 详解

JavaScript中的HTML DOM提供了强大的功能来改变HTML文档的内容和结构。通过JavaScript,我们可以动态地更新网页上的文本、属性、样式以及整个HTML结构。以下是对这些功能的详细解释和用法示例: 一、改变HTML内容使用innerHTML:innerHTML属性用于获取或设置元素的HTML内容。这…

20241905 2024-2025-2 《网络攻防实践》 第2次作业

1. 实验内容 本次实验为网络信息收集技术,主要有以下五个任务选择一个DNS域名进行查询获取信息 通过IP地址查询地理位置的信息 使用nmap扫描靶机环境 使用nessus扫描靶机环境 通过搜索引擎查询自己的隐私和信息泄露问题结合实验内容阅读书本,总结知识如下:网络踩点:攻击者通…

Ubuntu 20.4安装.Net 9

20.4默认包时没有.Net 9 需要用脚本形式安装wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh给执行权限chmod +x ./dotnet-install.sh可以通过 --channel 参数更改特定主要版本来指示特定版本。 以下命令安装 .NET 9.0 SDK。./dotnet-install.sh --channel 9.…

用DeepSeek+可灵AI+剪映制作哪吒2走T台秀AI视频 (保姆级教程)

内容首发周老师的付费社群,挑其中部分内容免费同步给公号读者今天给大家分享如何利用DeepSeek这类AI工具,制作哪吒2走T台秀视频,保姆级的制作方法,简单易懂,小白也能轻松上手。 关键操作,分为四步:1、用DeepSeek生成提示词 2、用AI生成图片 3、图生视频 4、视频剪辑合并…

修改Python的pip默认安装路径

修改Python的pip默认安装路径 修改site.py文件 查看pip下载位置 python -m site修改site.py文件内容 site.py文件位置在于python安装位置打开文件修改几处内容将ENABLE_USER_SITE=None改为ENABLE_USER_SITE=True修改USER_SITE和USER_BASEUSER_SITE修改的文件内容:USER_BASE修改…

Kubernetes 创建 Deployment 的完整流程解析

Kubernetes 创建 Deployment 的完整流程解析 当在 Kubernetes 中执行 kubectl apply -f deployment.yaml 时,背后发生了什么?本文将深入解析从 YAML 文件到运行 Pod 的完整流程。执行 kubectl apply -f deployment.yaml 后,涉及的组件和流程如下:apiVersion: apps/v1 kind:…