2017-06-08 4 views
0

こんにちは私は2つのアプローチを使用して配列のオブジェクトを削除します: スプライスとフィルタ。filter2とspliceを使って配列内のオブジェクトを削除します。これはangular2の中で最も良いアプローチですか?

ここスプライスコード: - ここ

(this.myArray).splice((this.myArray).indexOf(myobject), 1); 

フィルターコード: -

(this.myArray).filter(obj => obj !== myobject); 

私たちの両方とどちらが最善のアプローチであるとの違いを教えてください?

答えて

0

thisパフォーマンステストを確認してください。 Angularではそれほど多くはありませんが、JavaScriptにはそれ以上のものがあります。 もし利用可能な最速のメソッドを利用できるのであれば:

+0

こんにちは、ありがとう!テストアウトによると、フィルタが最適です。 –

+0

お役立ち情報:)あなたは私のコメントを回答としてマークできますか? – Stefan

+0

ポップはどうですか? –

0

スプライスを使用するインデックスがO(1)オペレーションであることがわかっているのは、filterを使用しているのはO(n)オペレーションです。

0

は私が主な違いはここにあると思う:

  • スプライス - あなたは、この特定の配列から要素を削除することができます
  • フィルタ - 入力配列には触れないであろうと作成し、新しいfilttered配列を返す

角度は、ここでは何の関係もありませんし、それが高速になると、スプライスが

を獲得します

と小テストとしての証明https://jsperf.com/array-splice-vs-array-filter/1

関連する問題