<>使用sort(function(a,b){return a-b})对数组进行排序的原理
<>案例: function sort(){ var _arr1=[8,95,31,1,5];
console.log(_arr1.sort());//输出1,31,5,8,95,因为会先将元素转换为字符串,用字符串的首字符进行比较,
//如果第一个字符相同,继续比较第二个字符 //针对上面的情况,使用以下方法解决
console.log(_arr1.sort(function(a,b){//a,b只是参数,可以使用其他字符 return a-b;
}));//输出1,5,8,31,95 } sort();
sort(function(a,b){return a-b})对数组进行排序的原理:
_arr1.sort(function(a,b){ return a-b; });
上面的代码中使用这个方法就相当于给下面的函数_arr1.sort传递了一个实参,fx用来接收这个实参
_arr1.sort=function(fx){//fx用来接收调用_arr1.sort时传过来的参数,此时fx=function(a,b){return
a-b;} //然后用冒泡排序从前往后进行比较,按由小到大的顺序排序 var _empty=null; for(var n=0;
n<_arr1.length-1;n++){ for(var i=0;i<_arr1.length-1; i++){
//因为fx接收过参数之后fx=function(a,b){return a-b},那么这里调用fx时传过去两个参数
//就相当于给function传了两个参数,a=_arr1[i+1],b=_arr[i](因为返回的是a-b),用后一位数减前一位数
if(fx(_arr1[i+1],_arr1[i])<0){//判断用第i+1个元素减去第i个元素是否小于0,如果小于0,说明i+1位置上的数较小,进行交换
//例如95-8大于0,不交换,31-95小于0,进行交换,把较小的值放在前面 _empty=_arr1[i]; _arr1[i]=_arr1[i+1];
_arr1[i+1]=_empty; } } } console.log(_arr1); }

技术
©2019-2020 Toolsou All rights reserved,
数字滚动抽奖小程序VaR - 风险价值 - 蒙特卡罗法 - Python百度网盘偷偷更新,终于实现免费不限速了! Chrome OS,对程序员和Windows意味着什么?,互联网营销华为Mate 40 Pro+ 5G曝光:徕卡电影镜头、陶瓷机身Qt学习2——.pro文件和.h文件介绍python:将一个文件转换为二进制文件(binary)第十一届蓝桥杯C/C++ 大学 B 组大赛软件类省赛网站手机号码抓取方式蚂蚁集团香港IPO获得中国证监会批准