在一行中创建任意大小的JavaScript/TypeScript 2d数组[重复]

shyt4zoc  于 2023-06-24  发布在  TypeScript
关注(0)|答案(1)|浏览(124)

此问题已在此处有答案

How can I create a two dimensional array in JavaScript?(55个回答)
7天前关闭
如何在JavaScript或TypeScript中创建一个m×n的2d数组?当然,我可以创建一个2×3数组:

arr = [[0, 0], [0, 0]]

但是维数是用变量mn给出的。所以我可以这样做:

arr = new Array(m).fill(new Array(n).fill(0))

但是所有的行都是相同的数组:

arr[1][2] = 5
console.table(arr)

| (索引)|0| 1| 2|
| - -----|- -----|- -----|- -----|
| 0| 0| 0| 5个|
| 0| 0| 0| 5个|
我只修改了最下面的一行,但最上面的一行也受到了影响。所以下面的内容是我想要的(每个单元格是不同的内存位置):

arr = [...new Array(2)].map(() => new Array(3).fill(0))

这是工作,但它是非常丑陋的。JavaScript或TypeScript是否有更合适或更有效的方法来创建2d数组?

p3rjfoxz

p3rjfoxz1#

尝试使用Array.from

let arr = Array.from({length: 3}, () => Array(3).fill(0))

arr[1][2] = 5

console.log(arr)

相关问题