专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

jquery数组(排序)

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:01:51       共计:3646 浏览
 

HTML

View Code

1 <h3>字符串数组排序前</h3>

2 <div id="show5"></div>

3 <h3>排序后</h3>

4 <div id="show6"></div>

jquery

View Code

var animals = ['dog','cat','tiger','pig','bird'];

$('#show5').html(animals.join('<br/>'));

         

animals = animals.sort();

$('#show6').html(animals.join('<br/>'));

显示结果:

字符串数组排序前

dog

cat

tiger

pig

bird

排序后

bird

cat

dog

pig

tiger

如果数组换成了数值数组呢?结果会什么怎么样的?

如下:

HTML

View Code

<h3>数值数组排序前</h3>

<div id="show7"></div>

<h3>排序后</h3>

<div id="show8"></div>

jquery

ar nums = ['12','2','5','36','4'];

$('#show7').html(nums.join('<br/>'));

      

nums = nums.sort();

$('#show8').html(nums.join('<br/>'));

显示结果:

数值数组排序前

12

2

5

36

4

排序后

12

2

36

4

5

很明显,数值数组最后的排序结果不是我们想要的。这是为什么呢?
因为sort()方法排序,是基于ASCII值进行排序的。故它会认为36小于4(因为3ASCII值小于4ASCII值)。所以要对排序的sort()方法定义一个比较函数:

jquery

ar nums = ['12','2','5','36','4'];

$('#show7').html(nums.join('<br/>'));

//定义了sort的比较函数

nums = nums.sort(function(a,b){

return a-b;

});

$('#show8').html(nums.join('<br/>'));

显示结果:

数值数组排序前

12

2

5

36

4

排序后

2

4

5

12

36

这才是我想要的结果!

知识点:

1,sort(function(a,b){return a-b;})对传入的一对值进行比较,然后返回的的值为:小于0,大于0,等于0;(大于0交换位置,反之则不)

* 当小于0时,说明b>a,故b的排序靠后(即不变).

* 当大于0时,说明a>b,故a的排序靠后.

* 当等于0时,说明a=b,故不改变排序.

如果对数值数组的值进行降序排序。那么只要把返回的值改为b-a!

个人觉得这个方法包含了排序算法的实现过程

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:三星I9300 GALAXY SIII | ·下一条:jquery 中substring,substr,split的用法

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有