我正在开发Angular 4应用程序。
我在我的应用程序中找到了以下代码,但无法找到以下代码的确切用途。
getManagementView(groupField: string) {
this.auditList = [...this.auditList.filter(this.filterByRevisit)];
}
我将其更改为以下代码,两者都正常工作。
getManagementView(groupField: string) {
this.auditList = this.auditList.filter(this.filterByRevisit);
}
任何人都可以帮助我理解上面两个代码块的区别。
答案 0 :(得分:5)
有不同之处。 spread (...)运算符会销毁数组并逐个返回元素,然后在[]
中再次生成数组。这实际上是额外的操作。
所以this.auditList.filter(this.filterByRevisit)
返回一个数组,
并且这个[...this.auditList.filter(this.filterByRevisit)]
返回一个扩展的数组,并再次生成一个数组。
答案 1 :(得分:4)
我认为这两者之间没有区别。 ...
会创建一个新数组,filter
已经完成了。
但如果我拿标题:
this.array = this.array // does nothing, same object
this.array = [...this.array] // creates a new array, though the same content