 
		alonehunter
2018-12-24 15:45
function(a,b){
    return a-b;
}为什么返回 a-b就是升序, 返回b-a就是降序,原理是什么
 
				相当于数组下标a和数组下标b进行比较,若a-b大于零,即为真(true)即下标互换位置,若小于零即为假(flase),及不变,可以吧a-b和b-a看作为a>b和b>a,真即运行,假即跳过.
 
				不用知道会用就行了,细枝末节的东西全学会就是浪费精力,工作后也是靠偷和改。主要是能看懂和会用。
 
				我觉得指的是ASCII码,a97,b98,a-b是按ASCII码升序
 
				该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
  若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
  若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
  若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。
sortNum函数 计算的就是数组里面的元素,如果是return b-a 就是用数组后面的数-减去前面数,获得一个数字
可以是 -9999 也可以是 9999  随便一个数   但是 retrun 出来的 结果 传入 myarr.sort()这个 方法后他会判断是否大于1   如果大于1 那说明 后面的数大于前面的数字  也就是b大于a 那么就会把b和a 交换  他应该是从最左边开始比较 如果大就交换  把最小的数字放在最后  如此多次重复 把数组的数字 排序好(也就是冒泡排序   当然也可能是其他的交换排序  比如简单交换排序)  总的来说   myarr.sort() 以及把功能实现给我们了  我们只要调用就行了
 
				我觉得a,b传递的应该是数组中前后相邻的两个元素,其排序原理类似于c语言中的冒泡法,a-b升序即一个有n个元素的数组中两个相邻元素元素比较大小大的数排序,从而使最大的那个数排到最后,然后在对数组前n-1各元素做相同处理,以此类推从而达到升序排列,b-a降序道理也是一样
 
				可以看一下sort方法的实现代码
 
				同问 有知道原理的吗
 
				看前边的视频
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题