JavaScript 二维数组的三种定义与初始化方法

在 JavaScript 中定义和初始化二维数组的三种常用方法,并通过示例代码和实际应用场景进行解释,帮助开发者深入理解其使用技巧和注意事项。


一、什么是二维数组?

二维数组是一种特殊的数据结构,它实际上是一个"数组的数组"。在 JavaScript 中,数组可以包含任意类型的元素,包括另一个数组。这样就构成了二维甚至多维数组的结构。

二、三种定义与初始化方法

方法一:直接定义与初始化

适用于已知所有元素且数量较少的情况。

javascript 复制代码
// 直接定义一个 3x2 的二维数组
var matrix = [
  ["A1", "A2"],
  ["B1", "B2"],
  ["C1", "C2"]
];

优点 :简洁直观,适合静态数据。
缺点:不适合动态或大规模数据初始化。


方法二:动态初始化未知长度的二维数组

适用于需要动态设定数组维度的情况。

javascript 复制代码
// 初始化一个 i x j 的二维数组,所有元素初始为空字符串
var i = 3; // 行数
var j = 2; // 列数
var dynamicArray = new Array(i);

for (var row = 0; row < i; row++) {
  dynamicArray[row] = new Array(j);
  for (var col = 0; col < j; col++) {
    dynamicArray[row][col] = ""; // 初始化每个元素
  }
}

// 后续可动态赋值
dynamicArray[1][0] = "Hello";

优点 :灵活,可动态设定大小。
缺点:需要显式初始化每个元素。


方法三:通过数组合并生成二维数组

适用于将多个一维数组合并为二维数组的场景。

javascript 复制代码
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [7, 8, 9];

var combinedArray = [];

for (var idx = 0; idx < arr1.length; idx++) {
  combinedArray[idx] = [arr1[idx], arr2[idx], arr3[idx]];
}

console.log(combinedArray);
// 输出: [[1,4,7], [2,5,8], [3,6,9]]

优点 :适合合并多个已有数组。
缺点:要求各数组长度一致。


三、多维数组的扩展:三维数组示例

javascript 复制代码
var threeDArray = [];

for (var x = 0; x < 2; x++) {
  threeDArray[x] = [];
  for (var y = 0; y < 2; y++) {
    threeDArray[x][y] = [];
    for (var z = 0; z < 2; z++) {
      threeDArray[x][y][z] = x + y + z;
    }
  }
}

console.log(threeDArray);
// 输出: [[[0,1],[1,2]], [[1,2],[2,3]]]

四、UML 图示:二维数组结构

以下是一个 3x2 二维数组的结构示意图:
1 3 contains 1 2 TwoDArray -Array rows Row -Array cells Cell


五、单词与短语表

单词/短语 音标 词性 释义 词根/词缀 同义词/反义词 例句
Array /əˈreɪ/ noun 数组 - List We use an array to store multiple values.
Initialize /ɪˈnɪʃəlaɪz/ verb 初始化 initial + ize Set up You should initialize the variable before using it.
Dimension /daɪˈmenʃn/ noun 维度 di + mension - A two-dimensional array has rows and columns.
Dynamic /daɪˈnæmɪk/ adjective 动态的 dynam- + ic Static (反) JavaScript allows dynamic array creation.
Element /ˈelɪmənt/ noun 元素 - Component Each element in the array can be accessed by index.
Loop /luːp/ noun/verb 循环 - Iterate Use a loop to traverse the array.
Index /ˈɪndeks/ noun 索引 - Subscript Array indices start from zero.
Merge /mɜːrdʒ/ verb 合并 - Combine We can merge two arrays into one.
Matrix /ˈmeɪtrɪks/ noun 矩阵 - Grid A matrix is a two-dimensional array.
相关推荐
程序员大阳1 小时前
HTML+CSS+JS对话式实战(5)-活动管理页之查看报名名单的实现
javascript·css·html·查看报名名单
新*4 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
OpsEye5 小时前
别再挨个充会员了:多模型编码,最麻烦的从来不是选模型
javascript·ai编程
学以智用6 小时前
jsencrypt.js 完整详解
javascript
Hilaku9 小时前
你们公司有 35 岁以上的前端吗?
前端·javascript·程序员
鸿蒙开发9 小时前
小程序存档写到一半怎么办?双槽保存与损坏恢复实战
前端·javascript·react.js
知忆_IS10 小时前
TerriaMap 开发实战04:MVT数据自定义符号化 - terriajs源码修改
javascript·webgis·terriamap·terriajs
云上工程笔记12 小时前
SRT字幕一键转手绘动画:srt-whiteboard-animation的复刻实录
大数据·开发语言·javascript·人工智能·机器学习
FungLeo13 小时前
成为全栈·Vue管理后台篇·<scriptsetup>:把页面拆成可读、可测的 Vue 组件
前端·javascript·vue.js·typescript·前端组件化·composition api·vue sfc
清晨Coding1 天前
删了 Cookie 还能自动登录?Google系网站登录态自动恢复的原理分析
javascript