( ╯□╰ ),小白问一下各位大大,这里的 return a - b 到底是嘛子个意思?
参考了一些资料跟大神们的解释,自己理解是这样的:
1,sort的入参是一个function
2,sort根据function的参数和返回值对数组进行排序。
比如参数是a,b,他们就是数组里的俩元素,返回值大于0表示a排在b后面,这样a>b,a-b>0,a在b的后面,a>b升序;而a<b,b-a>0,a在b的后面,a<b降序。
看一下定义:
myArray.sort(sortMethod);
注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。
可能在函数内部还有一些算法,类似C语言的冒泡排序法,来真正实现升序跟降序的排序。
不知道理解的对不对,嘿嘿
o(^▽^)o 哈哈,谢谢你们的耐心解答。
你们说的小白知道了。
( ╯□╰ ),小白要问的不是减法的问题。看下面这段代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Array对象 </title>
<script type="text/javascript">
function sortNum(a,b) {
return a - b;
} //实现升序功能?这样写为什么就能实现升序功能
function asortNum(a,b) {
return b - a;
} //实现降序功能?为什么能起到降序作用。
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum)+"<br/>");
document.write(myarr.sort(asortNum));
</script>
</head>
<body>
</body>
</html>
这段代码实现了数组元素的升序和降序排列。关键是sort里面的函数起到了作用。可是那个函数为什么是这样写的。小白很不解。
a,b 是数字参数 ,a-b就是简单减法运算
就是返回 a减去b的值。
比如下面这个函数返回a与b的差:
function sub(a, b) { return a-b; }
如果我们调用:
var result = sub(5, 3); alert(result);
那么浏览器就会弹框显示一个数字2。
----
那么在这里也和上面的函数sub()一样,返回一个值。需要注意的是,如果函数返回值了,那么return语句后面的代码就不会被执行了。