JavaScript- 2.7 二维数组

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

HTML和CSS系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励! 

系列文章目录 

JavaScript- 1.1 行内、内部、外部三种引用方式

JavaScript- 1.2 ECMA基本语法和控制流

JavaScript- 1.3 DOM对页面内容进行操作

JavaScript- 1.4 BOM对浏览器进行操作

JavaScript- 1.5 数据类型+变量+运算符

JavaScript- 1.6 基本控制流

JavaScript- 2.1 系统函数和自定义函数

JavaScript- 2.2 内置对象MATH

JavaScript- 2.3 内置对象String

JavaScript- 2.4 内置对象Date

JavaScript- 2.5 内置对象ARRAY 

JavaScript- 2.6 数组应用 

JavaScript- 2.7 二维数组

JavaScript- 3.1 定时器函数 window.settimeout & window.settinterval 

JavaScript- 3.2 JavaScript实现不同显示器尺寸的响应式主题和页面 

JavaScript- 4.1 DOM-document对象 

JavaScript- 4.2  DOM--定位元素

JavaScript- 4.3  轮播图实现指南


目录

系列文章目录 

前言

一、JavaScript 中的二维数组

1、创建二维数组

1. 使用数组字面量

2. 使用Array构造函数

3. 使用Array.from()方法(ES6)

4. 使用fill和map方法

2、访问和修改元素

3、遍历二维数组

使用嵌套for循环

使用forEach方法

4、常见操作

1. 初始化二维数组并填充值

2. 矩阵转置

3. 查找元素

5、注意事项

6、实际应用示例

1. 图像处理(像素矩阵)

2. 游戏开发(棋盘/地图)

 二、代码实践

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、JavaScript 中的二维数组

二维数组是数组的数组,在JavaScript中可以通过多种方式创建和操作二维数组。以下是关于JavaScript二维数组的详细介绍:

1、创建二维数组

1. 使用数组字面量

javascript

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

2. 使用Array构造函数

javascript

let rows = 3;
let cols = 3;
let matrix = new Array(rows);
for (let i = 0; i < rows; i++) {
  matrix[i] = new Array(cols);
}

3. 使用Array.from()方法(ES6)

javascript

let rows = 3;
let cols = 3;
let matrix = Array.from({length: rows}, () => Array.from({length: cols}));

4. 使用fill和map方法

javascript

let rows = 3;
let cols = 3;
let matrix = Array(rows).fill().map(() => Array(cols).fill(0));

2、访问和修改元素

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

// 访问元素
console.log(matrix[1][2]); // 输出: 6 (第二行第三列)

// 修改元素
matrix[0][1] = 20;
console.log(matrix[0][1]); // 输出: 20

3、遍历二维数组

使用嵌套for循环

javascript

for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    console.log(`matrix[${i}][${j}] = ${matrix[i][j]}`);
  }
}

使用forEach方法

javascript

matrix.forEach((row, i) => {
  row.forEach((element, j) => {
    console.log(`matrix[${i}][${j}] = ${element}`);
  });
});

4、常见操作

1. 初始化二维数组并填充值

javascript

let rows = 3;
let cols = 3;
let matrix = [];
for (let i = 0; i < rows; i++) {
  matrix[i] = [];
  for (let j = 0; j < cols; j++) {
    matrix[i][j] = i * cols + j + 1; // 填充1-9的数字
  }
}

2. 矩阵转置

javascript

function transpose(matrix) {
  return matrix[0].map((col, i) => matrix.map(row => row[i]));
}

let transposed = transpose(matrix);

3. 查找元素

javascript

function findInMatrix(matrix, value) {
  for (let i = 0; i < matrix.length; i++) {
    for (let j = 0; j < matrix[i].length; j++) {
      if (matrix[i][j] === value) {
        return { row: i, col: j };
      }
    }
  }
  return null;
}

5、注意事项

  1. 初始化问题:直接使用new Array(rows).fill(new Array(cols))会导致所有行引用同一个数组对象。

    javascript

    // 错误示例 - 所有行实际上是同一个数组
    let wrongMatrix = new Array(3).fill(new Array(3));
    wrongMatrix[0][0] = 1;
    console.log(wrongMatrix[1][0]); // 也会变成1
  2. 不规则数组:JavaScript允许创建不规则的二维数组(每行长度不同)。

    javascript

    let jaggedArray = [
      [1, 2],
      [3, 4, 5],
      [6]
    ];
  3. 性能考虑:对于大型二维数组,考虑使用TypedArray或优化访问模式。

6、实际应用示例

1. 图像处理(像素矩阵)

javascript

// 假设有一个3x3的灰度图像矩阵
let image = [
  [255, 200, 100],
  [200, 150, 50],
  [100, 50, 0]
];

// 应用简单的滤镜(反转颜色)
let inverted = image.map(row => row.map(pixel => 255 - pixel));

2. 游戏开发(棋盘/地图)

javascript

// 简单的棋盘表示
let chessBoard = Array(8).fill().map((_, i) => 
  Array(8).fill().map((_, j) => (i + j) % 2 ? '♜' : '♖')
);

二维数组在JavaScript中非常灵活,可以根据具体需求选择最适合的创建和操作方式。

 二、代码实践

代码如下:

HTML

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>二维数组</title>
	</head>
	<body>
		<script type="text/javascript">
		//第一种
		var a=[1,2,3][1,2];
		console.log(a);
		//第二种 已知位置
		var myArray=new Array(1,2,3,4);
		var myArray1=new Array();
		myArray1[2]=myArray;
		console.log(myArray1);
		//第三种 遍历
		var myArray2=new Array;
		for(var i=0;i<6;i++){
			myArray2[myArray2.length]=new Array();//每个位置上生成一个数组
			for(var j=0;j<3;j++){
				myArray2[i][j]=i+":"+j;
			}
		}
		console.log(myArray2);
		</script>
	</body>
</html>

代码运行如下:


总结

以上就是今天要讲的内容,本文简单记录了二维数组,仅作为一份简单的笔记使用,大家根据注释理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yvonne爱编码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值