JS数组sort比较函数】的更多相关文章

转载:http://www.cnblogs.com/ljchow/archive/2010/06/30/1768683.html 我们知道,数组的sort方法可以对数组元素进行排序,默认是按ASCII字母表顺序排序.如果要根据其他的顺序排序就需要为sort方法提供一个比较函数作为参数.这里讲的就是如何写这个比较函数. 譬如: var a=[1,5,3,7]; a.sort(function(a, b) { return b-a });//从大到小排列 那如果复杂点的顺序应该如何写这个比较函数呢.…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> var products = [ { name: "Grapefruit", calories: 170, color: "red", sold: 8200 }…
说明一下,ECMAScript没有定义使用哪种排序算法,各个浏览器的实现方式会有不同.火狐中使用的是归并排序,下面是Chrome的sort排序算法的实现. sort方法源码 DEFINE_METHOD( GlobalArray.prototype, sort(comparefn) { CHECK_OBJECT_COERCIBLE(this, "Array.prototype.sort"); if (!IS_UNDEFINED(comparefn) && !IS_CALL…
想用sort方法对数组排下序,代码如下: var nums = "12 645 6 85 81 0 9 365 4 752".split(" ").map(function(a){ return Number(a); }); console.log(nums); // 排序前 [12, 645, 6, 85, 81, 0, 9, 365, 4, 752] console.log(nums.sort()); // 排序后 [0, 12, 365, 4, 6, 645,…
在处理数组的时候,我们有时候需要对数组进行排序,排序的方法有很多种,但是最好最快的就是利用sort方法进行快速的排序. 我们来看一个例子: var arr1 = [6, 3, 4, 1, 2, 5, 7, 3, 0, 9, 8, 10];//这里有一个数字数组 arr1.sort(function(a,b){ return a-b; }); 这种方法是升序的排法,反之, arr1.sort(function(a,b){ return b-a; }); 这样就是降序的排法.…
最近跟自以为很了解的数组干上了,就像许多我们认知的东西一样,总以为自己很了解的东西,其实并不了解. var a=[12,4,1,43,5,3,52];  alert(a);   //源:12,4,1,43,5,3,52 alert(a.sort());  // 1,12,3,4,43,5,52  这么排!不符合咱们的口味吧! alert(a.sort(function(a,b){return a>b}));  // 1,3,4,5,12,43,52  嗯嗯,这就看的顺眼多了 这是为什么呢?!!!…
Array.sort(); sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序. 一般用法:(数组元素从小大进行排序) var a = [9, 6, 5, 7, 11, 52, 15]; a.sort(function(return a-b;)); sort()方法,接收了一个函数作为参数时,排序主要根据传入函数的返回值是否大于0进行排序. 1)当 a - b < 0  时, 则 a 元素排在 b 元素的前面. 2) 当 a - b = 0 时, a , b 元素的位…
Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列.sort() 方法可以接受一个 方法为参数. sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数.当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换. var p = [5, 2, 3, 1, 7, 5, 6, 9, 6, 0]; function down(a, b) { return (a < b) ? 1 : -1 } p.sort(down) alert…
数组 方法 1.在数组末尾添加.删除元素 push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度.改变原数组 pop()方法则从数组末尾移除最后一个元素,减少数组的 length 值,然后返回移除的元素.改变原数组 2.在数组前端添加.删除元素 unshift() 方法从数组前端添加一个或多个元素,返回数组的长度.改变原数组 shift() 方法从数组前端移除一个元素,返回删除元素.改变原数组 3. 重排序方法 reverse()        // 返回一个…
数组sort方法排序var aa=[6,2,1,5]//默认是从小到大排序aa.sort()[1, 2, 5, 6] //下面也是从小到大排序aa.sort(function(a,b){return a-b>0?1:-1;})[1, 2, 5, 6] //下面是从大到小排序aa.sort(function(a,b){return a-b<0?1:-1;})[6, 5, 2, 1] 如果数组中存在对象,需要对对象下的某个数进行排序var aa=[{num:6},{num:3},{num:7},{…