2016-11-07 12 views
0

typescriptで配列を反復処理する方法はありますが、必要に応じて反復子を変更できますか?私は私のプログラムでは、以下のtypescriptですロジックを持っている:配列の繰り返しとtypescriptの項目の変更

for let list_item of list 
    if list_item matches condition: 
     modify list_item 

しかし、これは動作しません、私はtypescriptですが、変更可能なイテレータを返さないと思いますので、?これをどうすればいいのですか?これは、配列を列挙することによって行うことができる。 for(let list_item, index of list) { ... }、これが存在するかどうかわかりません。 goo.gl/5eDNsD

答えて

1

をあなたはそのように行うことができません。ここで

は私が抱えている問題の一例です。 list_itemは配列の値を指すポインタではなく、配列を変更することができます。 list_itemは単なる古い値ですが、それを変更することは何も成し遂げません。配列を変更する場合は、list[idx]を使用して配列を変更する必要があります。もちろん、索引は付けられていないので、そのままループを使用することはできません。

あなたが探しているfor(let list_item, index of list) { ... }構築物はところで

for (let [idx, list_item] of list.entries()) { 
    if list_item matches condition: 
    modify list[idx] 
} 

あり、これは活字体で行うには、特に何もしています。

+0

を使用することができます()'、私は長さゼロの配列イテレータは、任意のアイデアまで何を得ますか? –

+0

これはイテレータを返します。次に、for ... of'や '[iterator]'や 'Array.from(iterator)'など、反復された値を取得するために何かする必要があります。 –

0

イテレータを変更するとどういう意味ですか?限り、要素を繰り返し処理し、要素が特定の条件を満たす場合に要素を変更したいと考えることができます。その場合は、私は `エントリを使用するときは、map

list = list.map(list_item => { 
    if list_item matches condition 
     modify list_item and return 
    } 
return list_item 
) 
関連する問題