var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){return b - a})// for descending order
在回调函数中,a
和b
变量是指什么?
为什么以及b-a
如何按降序精确地生成数组?
答案 0 :(得分:7)
a
和b
是数组中的两个值,您可以对它进行比较,以便Javascript对它们进行排序。
多次调用该函数以确定数组中每个元素与所有其他元素的比较。调用函数的确切次数取决于数组中元素的数量及其原始顺序。
如果两个元素相等,则需要返回0;如果a
应该在b
之前,则返回负数;如果b
应该在a
之前,则返回正数
答案 1 :(得分:2)
sort函数具有内部排序算法。您只需为算法提供一种方法,在给定数组的两个成员的情况下,确定哪一个更大(这是b-a
的目的。)使用此算法,算法将能够放置元素按照必要的顺序。
答案 2 :(得分:-1)
不传递任何参数将指定升序词典顺序(按字母顺序排列)。
但是,您也可以选择传入array.sort将用于对数组进行排序的函数。您传入的函数应该恰好比较两个元素,而array.sort函数将使用您的函数,以便有效地对整个数组进行排序。你的函数应该只是比较两个值。
如果a在b之前,你的函数应返回负数,如果a等于b,则返回0,如果a在b之后,则返回正数。因此return b - a
将按降序运行,因为每当b-a为正数时,b就越大,因此将在a之前,因此“降序”。类似于负值和等值。