bod*_*lex 5 javascript google-chrome
在 Chrome 的控制台中创建一个新的多维数组时,如下所示:
var array = Array(10).fill(Array(10).fill(false));
Run Code Online (Sandbox Code Playgroud)
但是当试图只改变数组中的一个单元格array[5][5] = true;时:发生了一些奇怪的事情:

由于这个原因,我一直用头撞墙一段时间,但无法弄清楚。这可能是一个错误,因为 Array.fill 是一个实验性/新功能吗?
这是因为你实际上只创建了两个数组。您创建了一个包含 10 个元素的内部数组,然后创建了一个包含 10 个元素的外部数组,每个元素都引用相同的内部数组。当您更改内部数组的一个元素,然后查看外部数组时,您将看到内部数组中的相同更改重复了 10 次。
使用循环创建外部数组,以便为外部循环的每个元素创建一个新的内部数组。
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |