2016-07-07 6 views
1

は、私のコントロール配列をemptyAllためにそこに方法はないですが、私はforループでそれをやってみました:空の制御配列

console.log("primitif value : " + this.parameters.length); 
     for (var index = 0; index < this.parameters.length; index++) { 
      this.parameters.removeAt(this.parameters.length- index); 
      console.log("seconde value :" + this.parameters.length); 
     } 

それはちょうど最後の値を削除しています、私は完全にすべてを削除したいです要素は、私はそれのようにすることもできません:

this.parameters = []; 

それを行う方法はありますか?

+0

'this.parameters.length = 0;'を試してください。 forループ内の項目を削除することはできません。その項目の長さをループ出口コントロールとして使用します。 – ManoDestra

+0

私もそれを試してみましたが、それは動作しません、まだコントロールが含まれています..... – Anna

+0

this.parametersを[]に設定したり、長さをゼロに設定した後、console.logを実行してください。コンソールのthis.parametersには何が表示されますか?何か他のものが配列をリセットしている必要があります。 – ManoDestra

答えて

2

は、パラメータのクローン化された配列を作成します。配列から削除したい場所は、複製された配列から削除します。クローンの長さを呼び出します。 forループの後に、クローンにパラメータを設定します。このソリューションを使用して

console.log("primitif value : " + this.parameters.length); 
    var clone = this.parameters; 
    for (var index = 0; index < this.parameters.length; index++) { 
     clone.removeAt(clone.length- index); 
     console.log("seconde value :" + clone.length); 
    } 
    this.parameters = clone; 

を使用すると、パラメータの配列または場合は、何も操作する必要がある場合は、非同期メソッドは、これらのインデックスのいずれかを使用しようとするつもりされて、彼らはループの後までまだ利用可能であることを意味します。

+0

あなたの助けをありがとう – Anna

3

これを試してみてください:

for (var index = this.parameters.length - 1; index >= 0; index--) { 
     this.parameters.removeAt(index); 
} 
+2

最初の要素を削除するには、 'index> = 0'でなければなりませんか?そして 'index = this.parameters.length - 1'? – ManoDestra

+0

いや、私の悪い。しかし、これは彼女を助けるはずです。 – Verri

+1

またはこの解決策: for(var index = array.length; index> -1; index--){ \t \t array.splice(index、1); \t \t}「 – Verri

関連する問題