javascript - Vad är skillnaden mellan dessa två arraytilldelningar i Typescript?
Jag arbetar på en Angular 4-applikation.
Jag hittade koden nedan i min applikation men kan inte hitta det exakta syftet med koden nedan.
getManagementView(groupField: string) {
this.auditList = [...this.auditList.filter(this.filterByRevisit)];
}
Jag ändrade det till nedanstående kod, båda fungerar bra.
getManagementView(groupField: string) {
this.auditList = this.auditList.filter(this.filterByRevisit);
}
Kan någon hjälpa mig att förstå vad skillnaden är mellan de ovanstående två kodblocken.
Svar #1
Det finns inget annorlunda. Spread (...)-operatorn förstör arrayen och returnerar elementen ett och ett och sedan i [] placerar dem igen och skapar på så sätt en array. Vilket faktiskt är en extra operation.
Så this.auditList.filter(this.filterByRevisit) returnerar en array, och detta [...this.auditList.filter(this.filterByRevisit)] returnerar en array som sprids och återigen skapar en array.
Svar #2
Jag tror inte att det finns någon skillnad mellan de två. ... skulle skapa en ny array, filter gjorde det redan.
Men om jag tar titeln:
this.array = this.array // does nothing, same object
this.array = [...this.array] // creates a new array, though the same content
