Fka*_*Fka 61 multidimensional-array typescript
我正在玩Typescript,我想知道,如何正确实例化和声明多维数组.这是我的代码:
class Something {
    private things: Thing[][];
    constructor() {
        things = [][]; ??? how instantiate object ???
        for(var i: number = 0; i < 10; i++) {
            this.things[i] = new Thing[];   ??? how instantiate 1st level ???
            for(var j: number = 0; j< 10; j++) {
                this.things[i][j] = new Thing();   ??? how instantiate 2nd lvl item ???
            }
        }
    }
}
你可以给我任何关于选定地点的提示吗?
Pup*_*ppy 88
您只需要[]实例化一个数组 - 无论其类型如何都是如此.数组是数组类型的事实并不重要.
同样的事情适用于循环中的第一级.它只是一个数组,[]是一个新的空数组 - 完成工作.
至于第二级,如果Thing是一个类,那么new Thing()就可以了.否则,根据类型,您可能需要工厂函数或其他表达式来创建一个.
class Something {
    private things: Thing[][];
    constructor() {
        this.things = [];
        for(var i: number = 0; i < 10; i++) {
            this.things[i] = [];
            for(var j: number = 0; j< 10; j++) {
                this.things[i][j] = new Thing();
            }
        }
    }
}
tec*_*000 13
下面是一个初始化 a 的例子boolean[][]:
const n = 8; // or some dynamic value
const palindrome: boolean[][] = new Array(n)
                                   .fill(false)
                                   .map(() => 
                                     new Array(n).fill(false)
                                   );
小智 9
您可以执行以下操作(我认为这很简单,但实际上是正确的)。对于任何试图找到如何在 TypeScript 中初始化二维数组的人(比如我自己)。
假设您要初始化任何类型的二维数组。您可以执行以下操作
const myArray: any[][] = [];
稍后,当您想要填充它时,可以执行以下操作:
myArray.push([<your value goes here>]);
上述内容的一个简短示例如下:
const myArray: string[][] = []; 
myArray.push(["value1", "value2"]);
如果你想这样做,请输入:
class Something {
  areas: Area[][];
  constructor() {
    this.areas = new Array<Array<Area>>();
    for (let y = 0; y <= 100; y++) {
      let row:Area[]  = new Array<Area>();      
      for (let x = 0; x <=100; x++){
        row.push(new Area(x, y));
      }
      this.areas.push(row);
    }
  }
}
| 归档时间: | 
 | 
| 查看次数: | 90614 次 | 
| 最近记录: |