2017-08-17 22 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