`

js数组排序

 
阅读更多
js的数组中有一个sort()方法,默认是按照ASCII字符顺序进行升序排列。sort(sortFun)方法可以接受一个方法为参数,这个方法有两个参数:分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都会执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

代码:
var arr = [1,11,23,51,56,100,3,4,1,5,0,5,7,562,0,67,10,50];

arr.sort(); //调用sort方法后,数组本身会被改变,即影响原数组
alert(arr.join(","));//0,0,1,1,10,100,11,23,3,4,5,5,50,51,56,562,67,7 不按照数字大小排序

arr.sort(function(a,b){return a>b?1:-1});//从小到大排序
alert(arr.join(","));//0,0,1,1,3,4,5,5,7,10,11,23,50,51,56,67,100,562

arr.sort(function(a,b){return a<b?1:-1});//从大到小排序
alert(arr.join(","));//562,100,67,56,51,50,23,11,10,7,5,5,4,3,1,1,0,0

结论:
1.数组调用sort方法后,会影响本身(而非生成新数组)
2.sort()方法默认是按字符来排序的,所以在对数字型数组排序时,不可想当然的以为会按数字大小排序!
3.要改变默认的sort行为(即按字符排序),可以自行指定排序规则函数(如本例所示)

下面是一个自定义排序的例子,根据二维数组的各种方式排序:
var arr= new Array();
arr[0]= new Array('e', 2, 'dfg');
arr[1]= new Array('b', 3, 'bcfgf');
arr[2]= new Array('a', 1, 'za');  
arr[3]= new Array('d', 4, 'ehfg');  
arr.sort(sortFun);
alert(arr[0] + " --- " + arr[1] + " --- " + arr[2] + " --- " + arr[3])
function sortFun(x,y){  //根据二维数组的第三列的第一个字母的ASCII码来升序排序
     return x[2].charCodeAt(0) - y[2].charCodeAt(0);
}
function sortFun(x,y){  //根据二维数组的第二列的数字大小来升序排序
     return x[1] - y[1];
}
分享到:
评论

相关推荐

    Js数组排序函数sort()介绍

    JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。 sort() 方法用于对数组的元素进行排序。语法如下: arrayObject.sort(sortby) 返回值为对数组的引用。请注意,...

    关于JavaScript的数组排序

    在学习JavaScript中,做的笔记,关于数组排序的,具体是按字母升序排序,按数字升序或降序排序。如有需要,请自行下载。

    javascript 数组排序

    通过阅读《2011-02-14-js-sort.html》这篇博文,你将能了解更多关于JavaScript数组排序的细节,包括一些高级技巧和常见陷阱。同时,CSS文件可能是用来美化博客页面样式的,但在这个讨论中并不直接相关。 总之,理解...

    排序函数(数字或字符串数组排序)

    为普通数组和对象数组排序,对象数组排序时,可指定排序所依据的对象属性,汉字将以汉语拼音为序。

    JavaScript 数组排序 比较器 示例代码

    JavaScript(简称JS)是一种轻量级、解释型、动态类型的脚本语言,主要用于网页前端开发,但也被广泛用于服务器端和移动应用开发。它最初由Netscape公司的Brendan Eich在1995年为Netscape Navigator浏览器设计,目的...

    17 - 数组排序.rar

    在这个“17 - 数组排序.rar”压缩包文件中,很可能是包含了关于JavaScript数组排序方法的详细讲解和示例代码。 JavaScript提供了内置的`Array.prototype.sort()`方法来对数组进行排序。这个方法接受一个可选的比较...

    js json数组排序.txt

    js实现json数组排序。 可对指定的字段进行排序,简单实用

    JavaScript数组排序的六种常见算法总结

    在JavaScript中,数组排序是常见的操作,涉及到多种不同的算法,每种算法有着不同的效率和适用场景。本文将总结六种常见的排序算法,并提供相应的代码示例。 首先,我们来看看希尔排序(Shell Sort),这是一种改进...

    纯js对象数组排序汇总处理类

    js中包含一个类,该类的主要功能是:对对象数组进行多字段排序和汇总。调用方法类似: 1、排序 :new SPArraySortHelper(数据, 分组排序字段, 汇总字段).sort() 2、汇总:new SPArraySortHelper(数据, 分组排序字段,...

    JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    本文实例总结了JS数组排序技巧。分享给大家供大家参考,具体如下: ① 冒泡排序 bubbleSort:function(array){ var i = 0, len = array.length, j, d; for(; i&lt;len; i++){ for(j=0; j&lt;len; j++){ if(array[i] ...

    js对象数组按属性快速排序

    按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function getRandomPlayCard(m){ var array1=new Array(m); for(var i=0;i&lt;m;i++){ var rnd=Math.floor(Math.random()*(i+0...

    无序数组排序

    在IT领域,数组排序是一个基础且重要的主题,尤其在数据结构和算法的学习中。无序数组排序是指对一个没有特定顺序的元素集合进行重新排列,使其按照某种规则(如升序或降序)呈现有序状态。这个过程涉及到多种排序...

    JavaScript对象数组排序函数及六个用法

    为了应对不同场景下的排序需求,本文将介绍一个自定义的JavaScript函数,该函数支持对数组或对象进行排序,并且能够根据数组或对象中嵌套的任意深度的子键进行排序。以下是对该函数及其使用方法的详细解析。 函数...

    javascript 数组排序函数

    JavaScript数组排序函数是JavaScript编程语言中用于对数组元素进行排序的标准方法。数组的sort方法可以对数组中的元素进行排序,其默认排序行为是按照字符串的Unicode码点顺序进行排序,也就是说,它会将数组元素...

    javascript数组排序汇总

    JavaScript数组排序汇总主要涉及到四种经典的排序算法:冒泡排序、快速排序、插入排序和希尔排序。这些算法在处理数组时有着不同的效率和应用场景。 1. **冒泡排序**(Bubble Sort): 冒泡排序是一种简单的排序...

    JS数组排序方法实例分析

    冒泡排序与选择排序都是基础的数组排序算法。以下是对这两种排序方法在JavaScript中的具体实现和...通过理解上述JavaScript数组排序及其他相关算法和技巧,读者可以更高效地编写JavaScript代码,解决各种数据处理问题。

    JavaScript应用实例-数组映射排序.js

    JavaScript应用实例-数组映射排序.js

    随机数排序_20个随机数_数组排序_源码

    以上就是针对"随机数排序_20个随机数_数组排序_源码"这一主题的关键知识点,涵盖了随机数生成、数组操作、排序算法及其性能、源码分析等方面。理解这些概念对于提升编程技能和解决问题能力非常有帮助。

Global site tag (gtag.js) - Google Analytics