我在JS书中看到了这段代码,但不太了解发生了什么。有人可以解释一下吗?
var values = [ 213, 16, 2058, 54, 10, 1965, 57, 9 ];
values.sort(function(value1,value2){ return value2 - value1; });
似乎排序只是取两个值的差异,但它返回排序的数组。现场背后发生了什么?
答案 0 :(得分:0)
如果你刚才有这个代码:
var values = [ 213, 16, 2058, 54, 10, 1965, 57, 9 ];
values.sort();
然后使用默认比较函数对值进行排序。您最终将按字母顺序排序,并将数组中的每个值视为字符串。
将函数作为参数传递给sort函数时,它将根据该函数进行排序。对于任何两个值,它将根据返回值是正值还是负值来交换它们。具体而言(根据MDN):
当且仅当您可以保证所有值都是数字并且差异永远不会溢出时,使用差异函数很方便。提供的比较函数将按降序对数组进行排序。
答案 1 :(得分:0)
您可以查看mozilla开发人员文档,有很多示例sort