<>使用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,
Element-Ui组件 Message 消息提示, alert 弹窗Java:案例理解-接口回调element-ui踩坑记录【Golang 基础系列十】Go 语言 条件语句之if使用css样式设计一个简单的html登陆界面2020顺丰前端暑期实习面经(已过)无孔化就是手机的未来?还有很多问题需要解决【C#】实现学生成绩信息管理系统云原生应用如何做到低成本获得高稳定?用HTML+CSS做一个漂亮简单的个人网页