2017-12-23 11 views
-2

iは整数に基づいて、動的配列を作成しようとするので、I = 3の整数を想定していない理由は、長さ3ダイナミックアレイ(Angular2 +)

counter(i: number){ 
    return new Array(i); 
} 

でアレイを作成しますこれは、長さがiの配列ではなく、長さが1の配列と値がiのメンバを返します。

EDIT: walkaround私がやろうとしているものには、次のとおりです。

counter(i: number){ 
    var a = new Array(); 
    for(var x = 0; x < i; x++) 
     a.push(x); 
    return a; 
} 

私は配列コンストラクターの動作についてちょうど好奇心が強いです。

+0

https://stackoverflow.com/questions/4852017/how-to-initialize-an-arrays-length-in-javascript – developer033

+0

ここでは質問には言及しません。問題は、null値を持つメンバーの量iではなく、値iの配列内に単一のメンバーを作成する理由です。 あなたが与えたリンクは、文字通り反対で、TypeScriptではなくJavaScriptに対応しています。 PS:新しいArray(4)を使用すると4つのメンバーを持つ配列が作成されますが、i = 4の場合は新しいArray(i)が値4の単一メンバーの配列を生成します。 –

+0

カウンターメソッドでは** i **は間違いなく数字ですか? – JayChase

答えて

0

例をangle core 5.0.0でテストすると、関数は長さ4の配列を作成し、the resulting variable.lengthを実行すると4に等しくなります。したがって、前に与えられたリンクは必要なものすべてを持っています結果を理解する。

https://stackblitz.com/edit/angular-9effym?file=app%2Fapp.component.html

(DEVツールとデバッグのための直接リンク、::https://angular-9effym.stackblitz.io

結果

Hello ! 

Array length: 4 

value 0 = undefined 
value 1 = undefined 
value 2 = undefined 
value 3 = undefined 

コードここ

はそれを証明するデモです。

app.component.html:

<hello name="{{ name }}"></hello> 
<div> 
    <br> 
    Array length: {{xx.length}} 
    <br> 
    <br> 
    <div *ngFor="let value of xx; let i = index"> 
     value {{i}} = {{value+''}} 
    </div> 
</form> 
<br> 

app.component.ts

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: './app.component.html', 
    styleUrls: [ './app.component.css' ] 
}) 
export class AppComponent { 

    xx:any; 


    ngOnInit() { 

     this.xx = this.counter(4); 

    } 

    counter(i: number){ 
    return new Array(i); 
    } 
} 

注:

我々はの要素を初期化していないので、配列は、コンテンツが定義されていない、私はそれを実証したテンプレート内の{{value+''}}を使用してコンテンツを文字列に変換する

関連する問題