2017-07-25 75 views
-2

我要創建這個數組[「名」,年齡],並能使用一個類來打印類:如何創建打印的打字稿陣列

let person: Person[] = [["Anne", 21], ["Coco", 33]]; 
 
class Person{ 
 
    person: Person[]; 
 
    printPerson(): person{ 
 
    for (let i of person) { 
 
     document.write(i + '<br/>'); 
 
     } 
 
}

+2

該代碼是錯誤的在很多層面上,請首先閱讀Typescript和麪向對象編程的基礎知識。 – cyrix

+0

謝謝,你很棒,有一個很好的... ammm nigth –

回答

-1

此代碼將允許您打印一般的嵌套數組(我還沒有在類中實現它,但是這將是很容易做到):

let persons: (string | number)[][] = [["Anne", 21], ["Coco", 33]]; 

const printArray = (array: any[]) => { 
    for (const element of array) { 
     if (element instanceof Array) { 
      printArray(element); 
     } else { 
      document.write(element.toString() + '<br/>'); 
     } 
    } 
} 

printArray(persons); 

輸出:

Anne 
21 
Coco 
33 

但是,由於您期望內部數組具有相同的形狀,我建議使用Typescript類來實現它們。下面的代碼定義了一個Person類具有自己write方法,創建的Persons陣列,然後用每一個迭代,並且調用其write方法:

class Person { 
    name: string; 
    age: number; 

    print =() => { 
     document.write(this.name + ' is ' + this.age + '<br/>'); 
    }; 

    constructor(name: string, age: number) { 
     this.name = name; 
     this.age = age; 
    } 
} 

let persons: Person[] = [ 
    new Person("Anne", 21), 
    new Person("Coco", 33) 
]; 

for (let p of persons) { 
    p.print(); 
} 

輸出:

Anne is 21 
Coco is 33