2017-05-14 9 views
0

私は角2はQueryList.toArrayよりも速いQueryList.findです[x]は、角

からQueryListデータ構造に疑問を抱いていたと私は、要素が私のthis.circleのQueryListを形成取得するための2つの可能性持っている2:

まずひとつ:

let cir = this.circles.find(el => (el.rowNumber == row && el.colNumber == column)); 

二つ目:

let cir:ColOperations = this.circles.toArray()[row*this.colsNumber + column]; 

たぶん.toArray.findのような同じコンピューティングに変更するか、さらに悪化させる可能性があります。

どのソリューションが高速ですか?

答えて

0

QueryList<T>は、基本的にいくつかのタイプTの配列のラッパーです実際には、QueryList<T>の実装は、タイプTの配列です_resultsと呼ばれる私有財産を持っているので、あなたは同じである必要があり近づいたが、2番目の両方QueryList.toArray_results配列のコピーを呼び出し元に戻さなければならないため、1つは冗長で「悪い」(引用符に注意してください)です。 QueryListの関数のほとんどは、基になる配列に委譲します。だから、あなたの最初のものに固執する。 QueryListが不変なので、配列を変更する必要がある場合は、QueryList.toArrayに電話する必要があります。あなたの便宜のために、here's the link to the source code for QueryList.ts。 40行目と90行目を参照

関連する問題