定义2D数组Javascript

问题描述

嗨,我正在尝试在JS中定义2D数组,但似乎有两个错误阻止了我,而且我不确定我要去哪里。 i 仅来自for循环-已定义。即使我将 i 替换为 0 ,也会发生相同的错误。 我的代码

let leds[i][i] = randint(0,10);

这会导致错误

'='预期。

但是删除 let

leds[i][i] = randint(0,10);

导致另一个错误

类型'number'不能分配给类型'undefined'。

我正在使用BBC Microbit的JS编辑器。 预先感谢。

解决方法

首先,从技术上讲,JavaScript中没有2D数组之类的东西。您正在使用的只是Array中的一个数组。

例如,您可以创建4X4数组,例如:

>>> const array = [
    [1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]
]
>>> array[1][1]
6

因此,在您的情况下,您需要创建一个空的多维数组,只有您才能分配值。

有一个快捷方式可以创建10x10作为默认值的0数组:

>>> const a = new Array(10).fill(new Array(10).fill(0))
>>> a
(10) [Array(10),Array(10),Array(10)]
0: (10) [0,0]
1: (10) [0,0]
2: (10) [0,0]
3: (10) [0,0]
4: (10) [0,0]
5: (10) [0,0]
6: (10) [0,0]
7: (10) [0,0]
8: (10) [0,0]
9: (10) [0,0]
length: 10
__proto__: Array(0)

最后,有了数组后,您可以按索引获取/分配值:

a[9][9] = 10
10
a[9][9]
10
,

变量leds必须先定义为数组,然后才能用作数组。然后,您可以使用push方法向其中添加元素;这些元素可以是其他(嵌套)数组。例如:

//set leds as an empty array
let leds = [];

//add to the array
leds.push([]);
leds[0] = [1,3];

leds.push([]);
leds[1] = [4,5,6];

leds.push([7,8,9]);

//change an array value
leds[1][1] = 0;

console.log(leds);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...