2017-08-30 5 views
2

私は角度4のアプリケーションに取り組んでいます。Typescriptのこれらの2つの配列割り当ての違いは何ですか?

私のアプリケーションでは以下のコードが見つかりましたが、以下のコードの目的を正確に見つけることができません。

getManagementView(groupField: string) {   
    this.auditList = [...this.auditList.filter(this.filterByRevisit)]; 
    } 

以下のコードに変更しましたが、両方とも正常です。

getManagementView(groupField: string) {   
    this.auditList = this.auditList.filter(this.filterByRevisit); 
    } 

上記2つのコードブロックの違いは何ですか?

+6

は私には思える何人かの人々が '...'演算子と恋に落ち、それを多くのことを悪用する:私はタイトルを取るしかし場合

。 – deceze

+0

タイトルの質問は説明と同じではありません。 – trincot

答えて

5

違いがあります。 spread (...)演算子は配列を破壊し、要素を1つずつ戻し、次に[]に配列を作り直す。実際には余分な操作です。

したがってthis.auditList.filter(this.filterByRevisit)は配列 を返し、この[...this.auditList.filter(this.filterByRevisit)]は広がった配列を返し、再び配列を返します。

4

私は2つの違いがあるとは思わない。 ...は既に新しい配列filterを作成します。

this.array = this.array  // does nothing, same object 
this.array = [...this.array] // creates a new array, though the same content 
関連する問題