jquery数组(排序)

HTML:

1 <h3>字符串数组排序前</h3>
2 <div id="show5"></div>
3 <h3>排序后</h3>
4 <div id="show6"></div>

jquery:

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:

<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(因为3的ASCII值小于4的ASCII值)。所以要对排序的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!

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

时间: 2024-10-28 14:29:07

jquery数组(排序)的相关文章

强大的JQuery数组封装使用

JQuery对数组的处理非常便捷并且功能强大齐全,一步到位的封装了很多原生js数组不能企及的功能.下面来看看JQuery数组的强大之处在哪. $.each(array, [callback]) 遍历 不同于例遍 jQuery 对象的 $.each() 方法,此方法可用于例遍任何对象(不仅仅是数组哦~). 回调函数拥有两个参数:第一个为对象的成员或数组的索引, 第二个为对应变量或内容. 如果需要退出 each 循环可使回调函数返回 false, 其它返回值将被忽略.镇江市测绘局 each遍历,相信

jquery 表格排序,实时搜索表格内容

jquery 表格排序,实时搜索表格内容 演示 XML/HTML Code <table class="table-sort"> <thead> <tr> <th class="table-sort">First Name</th> <th class="table-sort">Last Name</th> <th class="table-sor

jQuery数组处理全解

jQuery的数组处理.便捷.功能齐全.最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生JavaScript数组不能企及的功能.最近时间紧迫,今天抽了些时间回过头来看jQuery中文文档中对数组的介绍,顺便对jQuery数组做个总结,温故而知新. 强烈建议你打开DEMO演示后再看下面的详解:http://mrthink.net/demo/ijq20101125.htm 1. $.each(array, [callback]) 遍历[常用] 解释: 不同于例遍jQuery对象的$().

Perl 哈希、数组 排序

写在前面: 1. 注意use warnings; 后,定义变量前加my 2. 此文转载其他文章,代码修改,适合新版本perl (一) sort函数sort LISTsort BLOCK LISTsort SUBNAME LISTsort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNAME或BLOCK,sort按标准字串比较顺序来进行(例如ASCII顺序).如果指定了SUBNAME,它实际上是个子函数的名字,该子函数对比2个列表元素,并返回一个小于,等于,或大于

011--c数组--排序--组成最大数

数组--排序--组成最大数 组成最大数 任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入 1593 ,则输出为 9531 . 输入: 自然数 n 输出: 各位数字组成的最大数   测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1593↵ 以文本方式显示 9531↵ 1秒 64M 0 [分析] 很显然,这是个排序的题.先用冒泡排序实现,很简单代码就不写了. [代码] 冒泡排序的代码在我的Blog:http://blog.csdn.net/deb

js 数组 排序

//1.先定义数组 var cr_json = new Array(); var s_arr_cr = '{ id: ' + hid_JobTicketID + ',fee:' + hid_CrossRegionFee + '}'; var arr_cr = eval('(' + s_arr_cr + ')'); cr_json.push(arr_cr); //排序 cr_json.sort(function (a, b) { return b.fee - a.fee; }); js 数组 排序

Jquery 表头 排序

原文:Jquery 表头 排序 源代码下载地址:http://www.zuidaima.com/share/1550463782128640.htm

jquery数组删除指定元素的方法:grep()

jquery数组删除指定元素的方法:grep() 金刚 数组 jquery javascript 元素 遇到的问题 今天遇到一个问题,删除数组中的一个指定元素,并返回新的数组. 我定义的js数组是这样的: var sexList=new Array[3]; sexList[0]="1"; sexList[1]="2"; sexList[2]=""; 想达到的效果 我想达到的效果是这样的: 删除索引=1的元素,并返回新数组. 返回的结果是: var

jquery 数组求差集,并集

var alpha = [1, 2, 3, 4, 5, 6], beta = [4, 5, 6, 7, 8, 9]; $.arrayIntersect = function(a, b){ return $.merge($.grep(a, function(i) { return $.inArray(i, b) == -1; }) , $.grep(b, function(i) { return $.inArray(i, a) == -1; }) );}; window.console &&