我不理解sortedArticles()中的return语句。可以将我指向一个链接,或解释这种排序功能如何工作?
sortedArticles(): Article[] {
return this.articles.sort((a: Article, b: Article) => b.votes - a.votes);
}
<div class="ui grid posts">
<app-article
*ngFor="let article of sortedArticles()"
[article]="article">
</app-article>
</div>
可能是一个微不足道的问题,但由于某种原因无法在线找到答案。感谢帮助。
答案 0 :(得分:2)
好的,让我们为你打破......
sortedArticles(): Article[] {
return this.articles.sort((a: Article, b: Article) => b.votes - a.votes);
}
(a: Article, b: Article) => b.votes - a.votes
- 这相当于
function(a, b) { return b.votes - a.votes }
,并将返回正确的值,以便sort()
能够重新排序数组元素。如果第一篇文章(a
)有更多的选票,它将返回一个负值;如果两篇文章的票数相同,则返回0
;如果第二篇文章(b
)有更多选票,它将返回一个正数。
some_array.sort()
将函数作为其参数。这可以是命名函数,也可以是像这里所做的匿名函数。它将遍历数组并将两个元素传入函数,以确定它们是否应该交换或保持该顺序。如果函数返回负值,则第一项应该在第二项之前;如果函数返回正值,则第二个项应该在第一个之前;如果函数返回0
,那么它们的权重相等,而且它们的顺序并不重要 - 在这种情况下sort()
通常会将它们置于原始顺序中。
因此,调用sortedArticles()
将返回一个文章列表,按照多少&#34;投票&#34;他们每个人都有。