定义二维数组 Javascript
Defining 2D array Javascript
您好,我正在尝试在 JS 中定义一个二维数组,但我似乎遇到了两个错误阻止我,我不确定我哪里出错了。
i 只是来自 for 循环 - 它已被定义。即使我用 0 替换 i 也会发生同样的错误。
我的代码:
let leds[i][i] = randint(0, 10);
这会导致错误:
'=' expected.
但是删除 让:
leds[i][i] = randint(0, 10);
导致不同的错误:
Type 'number' is not assignable to type 'undefined'.
我正在为 BBC Microbit 使用 JS 编辑器。
提前致谢。
首先,从技术上讲,javascript 中没有二维数组这样的东西。您正在使用的只是数组中的一个数组。
例如,您可以创建 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), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10)]
0: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
3: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
5: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
6: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
7: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
8: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
9: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
length: 10
__proto__: Array(0)
最后当你有了你的数组时,你可以 get/assign 按索引的值:
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,2,3];
leds.push([]);
leds[1] = [4,5,6];
leds.push([7,8,9]);
//change an array value
leds[1][1] = 0;
console.log(leds);
您好,我正在尝试在 JS 中定义一个二维数组,但我似乎遇到了两个错误阻止我,我不确定我哪里出错了。 i 只是来自 for 循环 - 它已被定义。即使我用 0 替换 i 也会发生同样的错误。 我的代码:
let leds[i][i] = randint(0, 10);
这会导致错误:
'=' expected.
但是删除 让:
leds[i][i] = randint(0, 10);
导致不同的错误:
Type 'number' is not assignable to type 'undefined'.
我正在为 BBC Microbit 使用 JS 编辑器。 提前致谢。
首先,从技术上讲,javascript 中没有二维数组这样的东西。您正在使用的只是数组中的一个数组。
例如,您可以创建 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), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10)]
0: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
3: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
5: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
6: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
7: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
8: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
9: (10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
length: 10
__proto__: Array(0)
最后当你有了你的数组时,你可以 get/assign 按索引的值:
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,2,3];
leds.push([]);
leds[1] = [4,5,6];
leds.push([7,8,9]);
//change an array value
leds[1][1] = 0;
console.log(leds);