2017-12-28 9 views
0

現在、私はTypeScriptとAngularを実践するための小さなアプリを作っています。私は数字の配列を持っています。角度4タイプスクリプトの配列からトグル番号を切り替えます

var numbers = [9、10、11、14、13];

私はループしていますが、それぞれが番号に関連付けられています。私が達成したいのは、ボタンの1つをクリックすると、その番号が追加されるか、配列から削除されます。その開始状態にある。

各番号は1回だけ終了する必要があります。

+2

試しましたか?宿題のように聞こえる.splice、.push、およびloopを使うのは良い演習です。 –

+0

のボタンは独立しています。番号が配列に存在する場合は、クラスをトグルします。 –

答えて

1

以下は、クリックされたボタンに関するデータにアクセスする例です。あなたが "状態"の意味を理解していないが、特定のロジックに基づいて配列項目を削除するのは簡単ではありません。

|-- component.html

<button id="1" (click)="onClick($event)">B1</button> 
<button id="2" (click)="onClick($event)">B2</button> 
<button id="3" (click)="onClick($event)">B3</button> 

|-- component.ts

onClick(event) { 
    var target = event.target || event.srcElement || event.currentTarget; 
    var idAttr = target.attributes.id; 
    numbers.push(idAttr); 
} 
+0

状態別に番号またはIDが既に配列にある場合は、再度追加したくない –

1

私たちはこれに@Wallaceで言及したのonClick関数を変更する必要があると思う:

onClick(event) { 
    var target = event.target || event.srcElement || 
event.currentTarget; 
    var idAttr = target.attributes.id; 
    numbers.indexOf(idAttr) === - 1 && numbers.push(idAttr); 
} 

これはに番号を追加しますidAttrが数値配列に存在しない場合に限り、それはi n配列。

関連する問題