JS数组学习之一维和二维数组的创建和访问

在之前的文章《js数组学习之清空全部元素的4种方法(代码详解)》中,我们删除全部数组元素–即清空数组的4种方法。下面继续javascript数组的学习,我们来聊聊一维数组、二维数组的创建和访问,并扩充一下简单聊聊多维数组。

首先我们来看看一维数组是怎么创建和访问的。

一维数组的创建和访问

一维数组有两种创建方法:“数组直接量”和“Array()函数”。

1、数组直接量 “[]

1)我们可以直接使用“[]”来给一个变量赋值,“[]”中可以是空的,那么就是定义空数组:

var a = [];  //空数组

使用数组的length属性来获取数组长度,返回值会为0。

console.log(a.length);

1.png

此时我们可以使用 数组名[下标]=值 的形式给空数组赋值

a[0]=1;a[1]="hello";

4.png

数组下标不仅仅可以是数字,也可以为文本字符串,那么此时数组就是一个关联数组

a["姓名"]="张三";a["年龄"]=23;

4.png

如果数组的下标值超出范围,如负数、浮点数、布尔值、对象或其他值,JavaScript 会自动把它转换为一个字符串,并定义为关联数组。

2)也可以直接定义数组并初始化

直接在“[]”中包含多个值列表,值之间用逗号分隔即可。

var a = [1, 2, 3];  //包含具体元素的数组

使用数组的length属性来获取数组长度,返回值就是具体定义的数组元素数目。

2.png

2、使用new Array()构造数组

1)如果直接调用 Array() 函数,不传递参数,可以创建一个空数组。

var a = new Array();  //空数组

使用数组的length属性来获取数组长度,返回值会为0。

3.png

2)如果调用Array() 函数时,传递多个值(值之间用逗号分隔),可以创建一个实数组。

var a = new Array(1,2,3);

3)如果调用Array() 函数时,只传递一个数值参数,那么就表示只定义了数组的长度,即包含元素的个数;数组元素为空,每个元素的值默认值为 undefined。(数组中元素值没有定义,在语法上两个逗号之间没有任何值的元素,被称为空位元素)

怪兽AI数字人 怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44 查看详情 怪兽AI数字人

var a = new Array(3);

6.png

像这种包含一个或多个空位元素的数组,也被称为空位数组。

var a = [1, , 2];
var a = [1, 2, 3];delete a[1];

也可产生空位元素,形成空位数组。

3、访问数组

访问数组就是访问数组元素。我们可以使用 数组名[下标表达式] 的形式来进行访问,读写数组。

注:下标表达式是值为非负整数的表达式。

例如上文中的 

delete a[1]

就是使用delete关键字删除a数组中下标为1的元素(即删除第二个元素)。

还有:

var a = [];  //空数组a[0]=1;a[2]="hello";

就是分别为a数组中下标为0和2的元素赋值,下标为1的元素的值没有赋值则为undefined。我们想要输出指定数组元素时,也可使用这种形式

console.log(a[0]);  //读取第一个元素,返回值为1console.log(a[1]);  //读取第二个元素,返回值为undefinedconsole.log(a[2]);  //读取第三个元素,返回值为hello

7.png

二维数组的创建和访问

JavaScript 并没有直接支持二维数组,但是可以设置数组元素的值等于数组,这样就能模拟二维数组的结构。

1、定义二维数组

定义二维数组的方法1:

var a = [];a[0,0] = 1;a[0,1] = 2;a[1,0] = 3;a[1,1] = 4;

定义二维数组的方法2:

var a = [  //定义二维数组    [1.1, 1.2],    [2.1, 2.2]];

8.png

定义二维数组的方法3:

var a = new Array([1.1, 1.2],[2.1, 2.2]);  //定义二维数组

9.png

按照这种思想,如果二维数组中每个元素的值也为数组,则可以模拟三维数组,以此类推,通过数组嵌套的形式可以定义多维数组。

2、访问二维数组

访问二维数组甚至三维数组、多维数组的方法,和访问一维数组的方法一样,都是使用中括号进行访问:

数组名[下标表达式1] [下标表达式2]数组名[下标表达式1] [下标表达式2] [下标表达式3]...数组名[下标表达式1] [下标表达式2] [下标表达式3]...[下标表达式N]

更高维度的数组以此类推。

好了,就说到这里了,有需要的可以看:javascript高级教程

以上就是JS数组学习之一维和二维数组的创建和访问的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/562022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 01:33:50
下一篇 2025年11月10日 01:34:33

相关推荐

  • 以太坊怎么上传合约?以太坊合约上传平台及方法介绍

    将智能合约“上传”到以太坊网络,专业术语称为“部署合约”。这个过程意味着将编译好的合约代码发布到区块链上,使其成为一个可以公开交互的去中心化应用。本文将介绍几个主流的合约部署平台与方法,帮助您选择最适合的工具。 Binance币安交易所 Binance币安注册入口: Binance币安APP下载: …

    2025年12月9日
    000
  • Cardano与以太坊区别?Cardano与以太坊的核心差异对比

    Cardano与以太坊在共识机制、架构设计、智能合约语言和治理模式上存在根本差异。1、Cardano采用经形式化验证的Ouroboros PoS算法,能耗极低;以太坊原为PoW,2022年“合并”后转为PoS,转型耗时较长。2、Cardano分层架构分离结算与计算层,支持无缝升级,Hydra二层方案…

    2025年12月9日
    000
  • 币圈量化交易数据平台_主流币圈量化交易数据平台是哪些

    对于加密货币投资者而言,量化交易是执行复杂策略、捕捉市场机会的强大工具。选择一个稳定、高效且数据丰富的平台是量化交易成功的基石,本文将为您盘点并介绍当前主流的币圈量化交易数据平台,帮助您做出明智选择。 主流币圈量化交易数据平台排名 1. 币安 (Binance) 官网直达: 作为全球交易量最大的加密…

    2025年12月9日
    000
  • 11月11日单日飙升 70%的Lisk (LSK)币是什么? 如何运作?LSK代币经济学介绍

    Binance币安 欧易OKX ️ Huobi火币️ 长期区块链项目 Lisk (LSK) 的代币价格于 2025 年 11 月 11 日飙升超过 70%,创下多年来最强劲的单日涨幅之一。尽管 Lisk 是早期 ICO 时代的较老山寨币之一,但其突然反弹引起了市场关注,因为韩国交易所的交易活动急剧增…

    2025年12月9日 好文分享
    000
  • LSK值得投资吗?LSK 62%暴涨生态Web3潜力与长期涨幅空间分析

    lsk币近期表现抢眼,62%的暴涨引发了市场对其投资价值的广泛关注。这轮上涨并非空穴来风,而是技术升级、生态扩张与市场情绪共振的结果。要判断lsk是否值得投资,关键在于理解其背后的增长逻辑和长期潜力。 Binance币安 欧易OKX ️ Huobi火币️ 技术优势与独特的生态定位 LSK的核心竞争力…

    2025年12月9日
    000
  • LSK是什么币_LSK属于什么链?LSK生态增长暴涨62%项目技术基础解析

    lsk是lisk平台的原生加密货币,属于lisk主链,同时是其应用链生态的核心资产。它不只是一个普通的交易代币,而是支撑整个lisk区块链开发平台运行的关键工具。lisk的目标很明确:让开发者能更轻松地创建和发布自己的专属区块链,也就是所谓的“应用链”。这正是lsk价值和生态增长的基础。 Binan…

    2025年12月9日
    000
  • 卡尔达诺(ADA)是什么?它和以太坊有何不同?

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 卡尔达诺(ADA)是一个以学术研究为基础的第三代区块链平台,它旨在通过科学哲学和同行评审的方法,创建一个更具可扩展性、可持续性和互操作性的去中心化应用(DApp)和…

    2025年12月9日
    000
  • 什么是zkPass(ZKP)币?工作原理是什么?zkPass代币经济学和路线图介绍

    zkpass($zkp)允许用户在不暴露原始数据的情况下,将 web2 上的事实验证到链上。它在保障用户隐私的同时,还能解锁贷款、空投和一些需要用户手动操作的功能。  Binance币安 欧易OKX ️ Huobi火币️ 想知道它是如何运作的以及在哪些情况下可以使用它吗?请阅读本文了解更多信息。 什…

    2025年12月9日 好文分享
    000
  • Folks Finance(FOLKS)币是什么?值得投资吗?FOLKS代币经济与前景分析

    folks finance 是一个跨链去中心化金融 (defi) 协议,使用户能够通过单一平台在多个区块链上提供、借贷和管理数字资产。该协议利用 chainlink ccip、circle cctp 和 wormhole 消息传递等互操作性技术,无需对流动性进行封装、桥接或拆分,使用户能够访问统一的…

    2025年12月9日 好文分享
    000
  • 什么是Web3?Web1-3的互联网发展简史

    Binance币安 欧易OKX ️ Huobi火币️ 互联网自诞生之初便发生了翻天覆地的变化。从简单的静态网页到如今动态的交互式平台,互联网的每个阶段——Web1、Web2 和 Web3——都重塑了我们在线沟通、信息共享和交易的方式。如今,随着Web3 的兴起,互联网正朝着 去中心化的方向发展,赋予…

    2025年12月9日
    000
  • 以太坊智能合约怎么用?

    以太坊智能合约,作为区块链技术的核心创新之一,正以前所未有的速度改变着我们对信任、透明和自动化的认知。你是否曾好奇,那些构建在区块链上的去中心化应用(dapps)是如何运作的?你是否想知道,如何在没有中介的情况下,让协议自动执行?本篇文章将深入浅出地为你揭示以太坊智能合约的奥秘,从它的基本概念到实际…

    好文分享 2025年12月9日
    000
  • 以太坊生态应用:DApp世界的无限可能

    以太坊作为区块链技术的开创者之一,其生态系统正在以前所未有的速度扩张,而其中最引人注目的莫过于dapp(去中心化应用)的蓬勃发展。dapp不仅是区块链技术应用落地的核心体现,更是预示着一个由智能合约驱动、用户拥有数据主权的全新互联网时代的到来。它们摆脱了传统中心化平台的束缚,通过代码强制执行协议,确…

    好文分享 2025年12月9日
    000
  • Casper Network是什么?发展历程、CSPR 代币经济与未来展望介绍

    casper 结合高扩展性、合规性与可升级智能合约,推动机构级区块链与现实资产代币化的新世代发展。 Binance币安 欧易OKX ️ Huobi火币️ ‍ 什么是 Casper Network,它是如何运作的? Casper Network 是一条为实际商业应用而设计的第一层(Layer 1)区块…

    2025年12月9日
    000
  • 什么是Recall(RECALL)币?它是如何运作的?Recall运作方式、代币经济和路线图介绍

    目录 什么是Recall?Recall的主要特点Recall如何运作?$RECALL 关键指标$RECALL 用例$RECALL 空投$RECALL 列表Recall代币经济学和筹款代币经济学Recall路线图和团队路线图团队结论常见问题解答什么是Recall? Recall 的原生代币是什么? R…

    2025年12月9日 好文分享
    000
  • 以太坊:智能合约平台

    以太坊(ethereum),这个名字在今天的区块链世界中无疑是熠熠生辉的存在。它不仅仅是一种加密货币,更是一个革命性的开放式智能合约平台。如果你曾听说过比特币是“数字黄金”,那么以太坊则被誉为“世界计算机”。它的核心创新在于超越了单纯的价值转移,允许开发者在其之上构建和运行去中心化应用(dapps)…

    好文分享 2025年12月9日
    000
  • Vue.js应用中配置环境变量:灵活管理后端通信地址

    在%ignore_a_1%应用中,灵活配置后端api地址等参数是开发与部署的关键。本文将详细介绍两种主要的环境变量配置方法:推荐使用的`.env`文件,以及通过`cross-env`库在命令行中设置环境变量。通过这些方法,开发者可以轻松实现开发、测试、生产等不同环境下配置的动态切换,提高应用的可维护…

    2025年12月6日 web前端
    000
  • VSCode选择范围提供者实现

    Selection Range Provider是VSCode中用于实现层级化代码选择的API,通过注册provideSelectionRanges方法,按光标位置从内到外逐层扩展选择范围,如从变量名扩展至函数体;需结合AST解析构建准确的SelectionRange链式结构以提升选择智能性。 在 …

    2025年12月6日 开发工具
    000
  • JavaScript动态生成日历式水平日期布局的优化实践

    本教程将指导如何使用javascript高效、正确地动态生成html表格中的日历式水平日期布局。重点解决直接操作`innerhtml`时遇到的标签闭合问题,通过数组构建html字符串来避免浏览器解析错误,并利用事件委托机制优化动态生成元素的事件处理,确保生成结构清晰、功能完善的日期展示。 在前端开发…

    2025年12月6日 web前端
    000
  • JavaScript响应式编程与Observable

    Observable是响应式编程中处理异步数据流的核心概念,它允许随时间推移发出多个值,支持订阅、操作符链式调用及统一错误处理,广泛应用于事件监听、状态管理和复杂异步逻辑,提升代码可维护性与可读性。 响应式编程是一种面向数据流和变化传播的编程范式。在前端开发中,尤其面对复杂的用户交互和异步操作时,J…

    2025年12月6日 web前端
    000
  • JavaScript生成器与迭代器协议实现

    生成器和迭代器基于统一协议实现惰性求值与数据遍历,通过next()方法返回{value, done}对象,生成器函数简化了迭代器创建过程,提升处理大数据序列的效率与代码可读性。 JavaScript中的生成器(Generator)和迭代器(Iterator)是处理数据序列的重要机制,尤其在处理惰性求…

    2025年12月6日 web前端
    000

发表回复

登录后才能评论
关注微信