宝哥软件园

JavaScript排序数组排序法和自实现排序法概述

编辑:宝哥软件园 来源:互联网 时间:2021-10-28

对数组进行排序是常见的要求,尤其是在后端。当然前端也有这个要求。

当然,有一种现成的数组排序方法,那就是sort()方法。

我们先来看看这个。

标准答案,排序方法。

var arr=[45,98,67,57,85,6,58,83,48,18];Console.log('原始数组');console . log(arr);Console.log('sort方法从小到大排序');console.log(arr.sort(函数(a,b){ return a-b });Console.log('sort方法从大到小排序');console.log(arr.sort(函数(a,b){ return B- a });运行结果如下:

sort方法数组排序

这里需要注意的是,默认情况下,排序是按字母顺序排序的。因此,当我们排列数字时,我们需要一个自定义函数。

比如上面的代码。

函数(a,b){返回a-b}

这是一个从小到大的排序函数。看起来好简单,但是我不懂,就按照我的想法排序吧~

我的答案,按for方法排序。

var arr=[45,98,67,57,85,6,58,83,48,18];Console.log('原始数组');console . log(arr);Console.log('用于从小到大的方法排序');console . log(arrsortintomax(arr));Console.log('用于从大到小排序的方法');console . log(arrSortMaxToMin(arr));//求数组中的最小值,函数arrmin num(arr){ varmin num=infinity,index=-1;for(var I=0;一、长度;I){ if(arr[I]minNum){ minNum=arr[I];索引=I;}};返回{'minNum':minNum,' index ' : index };}//返回数组从小到大的排序结果。函数arrsortintomax(arr){ var arrnew=[];var arrOld=arr . concat();for(var I=0;一、长度;I){ arrnew . push(arrMinNum(arrOld))。minNum);剪接。index,1)};返回(ArrNew);}//求数组函数arr maxnum (arr)中的最大值{var maxnum=-infinity,index=-1;for(var I=0;一、长度;I){ if(arr[I]MaxNum){ MaxNum=arr[I];索引=I;}};返回{'maxNum':maxNum,' index ' : index };}//返回数组从大到小的排序结果。函数arrsortmaxtomin(arr){ var arr new=[];var arrOld=arr . slice(0);for(var I=0;一、长度;I){ ArrNew . push(ArrMaxNum(Arrold))。maxNum);arrOld.splice(arrMaxNum(arrOld))。指数,1);};console.log(arr)返回(arrNew);}运行结果如下图所示。

for循环数组排序结果

我的方法中的知识点。

1.当一个函数需要返回多条数据时,使用json对象格式比较方便,比如上面返回{ ' minnum ' :minum,index ' : index };

2.如果使用var arrOld=arr复制一个数组,如果操作arrOld,会影响原来的数组arr。因为javascript分为原始类型和引用类型(类似于java和c#)。数组是引用类型。arrOld得到一个引用,所以ArrOld的修改会影响arr。

复制数组的方法(1)var arrOld=arr . concat();Principle :concat()函数是一个拼接多个数组的函数,相当于拼接本身,也就是复制。

复制数组的方法(2) var arrOld=arr.slice(0),原理:slice()函数是截取数组的函数,如果值设置为0,会截取所有数组,相当于复制。

3.splice()方法用于插入、删除或替换数组元素。这里,使用了删除数组中指定位置的功能。

4.我的方法和排序方法的区别。

我的方法不修改原始数组,但是sort是基于原始数组的修改。我的方法返回了一个新数组,但是原始数组并没有消失或改变。(好像和上面那句意思一样……)。

5.排序是编程中非常非常基础,非常非常重要的知识点。当执行大量数据时,排序仍然效率低下。当然,我的方法也是低效的。

本文转载于:http://blog.csdn.net/fungleo/article/details/51555590.

以上是边肖介绍的JavaScript排序数组排序方法和自实现排序方法的总结。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持。

更多资讯
游戏推荐
更多+