2017-08-17 11 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でこれを行う方法がわかりません。あなたはArray.prototype.mapを使用することができます

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

[Put with array with loop with Typescript](https://stackoverflow.com/questions/45761611/push-onto-array-with-loop-in-typescript) – Davtho1983

答えて

2

は、これまでのところ、私は次のtsを持って

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

クマを念頭に置いて、作成された配列は、未定義の値を持ちます。通常は、月ごとに空の配列を初期化するのではなく、配列の必須の値を生成します。

+0

の複製があります本当に空の配列を作成したい - 私はちょうどプレースホルダを使用することに慣れている、私は悪いコーディング慣行だと思う!どのようにして配列nを長くして別の配列[M、T、W、T、F、S、S]から埋めるのですか? – Davtho1983

+0

ある種のカレンダーウィジェットを作成しているようです。私は必要なときにデータを生成し、数年にわたって生成するのではなく、後で配列のほんの2つの項目でしか使用しないでください。 –

+0

ねえ - 私はそれをすることができます!しかし、私はまだ私が望むようにTSで配列を使用する方法を知りません! – Davtho1983