2017-08-17 56 views
0

作出新的陣列從價值我在打字稿以下數組:通過2D打字稿陣列循環,並在指數

this.days_in_month = [ 
    [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 
    [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 
    [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 
    [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 
]; 

我想遍歷它,併爲每個值創建一個新的,空的,數組該值的長度並將該數組添加到另一個數組數組中。例如:第一個值是31,所以我會創建一個空數組31,並將31數組添加到數組數組中。下一個值是28,所以我會創建一個長28的數組,然後將28數組添加到數組數組中,以便它現在包含31數組和28數組。

在Python中我會使用範圍,但我不知道如何在Typescript中做到這一點。

到目前爲止,我有以下TS:

this.days_in_month.forEach(function(value, index, array) { 
    console.log(value, index, array); 
    no_of_days: number = this.days_in_month(value); 
    let days = new Array<number>(no_of_days); 
}) 
+0

可能重複[推入數組與循環在Typescript](https://stackoverflow.com/questions/45761611/push-onto-array-with-loop-in-typescript) – Davtho1983

回答

2

您可以使用Array.prototype.map

let result = days_in_month.map(
    year => year.map(
     (days) => new Array(days) 
    ) 
); 

請記住,創建陣列具有未定義的值。您通常會生成所需的數組值,而不是僅爲每個月初始化一個空數組。

+0

所以我想我不真的想創建一個空的數組 - 我習慣於使用佔位符,我認爲這是不好的編碼習慣!我將如何創建一個數組n並從另一個數組[M,T,W,T,F,S,S]中填充它? – Davtho1983

+0

好像你正在構建某種排序的日曆小部件。我會根據需要生成數據,而不是生成一整年的數據,只是稍後在數組中使用一些項目。 –

+0

是的 - 我可以做到這一點!但是,我仍然不知道如何使用數組,像我想要的! – Davtho1983