JavaScript对象排序方法
在比较中,我无法通过比较来理解这个概念。 查看更多详细信息:如果(5>3)返回1;那么这个返回1和返回-1是什么;它是如何工作的,以及它如何影响排序方法。请帮帮我JavaScript对象排序方法,javascript,arrays,sorting,Javascript,Arrays,Sorting,在比较中,我无法通过比较来理解这个概念。 查看更多详细信息:如果(5>3)返回1;那么这个返回1和返回-1是什么;它是如何工作的,以及它如何影响排序方法。请帮帮我 function compareNumeric(a, b) { if (a > b) return 1; if (a < b) return -1; } var arr = [ 1, 2, 15, 14, 66, 434, 112, 3 ]; arr.sort(compareNumeric); alert(a
function compareNumeric(a, b) {
if (a > b) return 1;
if (a < b) return -1;
}
var arr = [ 1, 2, 15, 14, 66, 434, 112, 3 ];
arr.sort(compareNumeric);
alert(arr); // sorted array
函数比较(a,b){
如果(a>b)返回1;
如果(a
会有帮助。基本上,sort
使用数组中两个条目的不同组合重复调用回调。回调的返回值告诉sort
1)a
是否应该在结果中b
之前(通过返回负值),或者2)a
是否应该在结果中b
之后(通过返回正值),或3)a
和b
对于排序目的是等效的,因此不重要(返回0)
您的示例compareNumeric
有一个错误:如果a
既不是
也不是
b
,它应该返回0
,但是它不返回任何内容,因此调用它会导致未定义的
。相反:
function compareNumeric(a, b) {
if (a > b) { return 1; }
if (a < b) { return -1; }
return 0;
}
如果a
和b
都是数字,那么a
如果a
小于b
,那么在结果中应该在前面,如果a
大于b
那么在结果中应该在后面,那么a-b
将是负数,或0
如果a
和b
相等
请注意,回调函数被调用的次数以及调用的顺序没有在规范中定义;它只说明Array#sort
将根据需要调用回调并使用结果信息
让我们看看您的示例中的参数Array#sort
给出了什么;再次注意,这将取决于实现:
函数比较(a,b){
如果(a>b)返回1;
如果(a
。作为控制台包装器{
最大高度:100%!重要;
}
您可以看看这里:
function compareNumeric(a, b) {
return a - b;
}