精华内容
下载资源
问答
  • 我们知道在js中默认提供了sort函数,但是这个函数默认是按照数组内容的ascii码升序进行排列的,如果我们要对二维数组排序要如何做呢?在php中是有multi_sort函数可供调用的,但是在js中似乎没有这种函数,但是没关系...
  • 为普通数组和对象数组排序,对象数组排序时,可指定排序所依据的对象属性,汉字将以汉语拼音为序。
  • js中包含一个类,该类的主要功能是:对对象数组进行多字段排序和汇总。调用方法类似: 1、排序 :new SPArraySortHelper(数据, 分组排序字段, 汇总字段).sort() 2、汇总:new SPArraySortHelper(数据, 分组排序字段,...
  • 但是,我们在使用中就会发现问题,这里的数组排序方法并不是按照我们想像中的数字大小来排序的,而是按照字符串测试结果改变原先的数据。这并不是我们想要的。 那么如何才可以得到我们想要的按照我们思维中的数字...
  • js数组排序

    2016-12-22 23:59:00
    js数组排序
  • 本文实例分析了js数组排序sort方法的原理。分享大家供大家参考。具体分析如下: 最近在百度的项目中要用到对数组进行排序,当然一开始自然想到了数组的sort方法,这方法应用非常简单,大致如下: 代码如下: ...
  • 主要介绍了JS数组排序技巧,实例汇总了JavaScript冒泡排序、sort排序、快速排序、希尔排序等,并附带分析了sort排序的相关注意事项,需要的朋友可以参考下
  • 1.Javascript的sort方法,本方法的原理是冒泡排序,这里默认从小到大排序 <script> var arr = [23,13,34,65,65,45,89,13,1]; var newArr = arr.sort(function(a,b){ return a - b; }); console.log...

    下面主要介绍了数组排序的五种方式——sort()方法、选择排序、冒泡排序、插入排序和快速排序

    刚兴趣的朋友,可以往下看哦。

    1.js中的sort()方法

    基本思想:根据提供的排序规则,对数组元素进行排序。
                      使用数字排序,必须通过一个函数作为参数来调用。

    var arr = [123,203,23,13,34,65,65,45,89,13,1];
    function func(a,b){
    	return a-b;
    }
    console.log(arr.sort(func)); //(11) [1, 13, 13, 23, 34, 45, 65, 65, 89, 123, 203]

    2.选择排序

    基本思想:首先在未排序数组中找到最小(大)元素,存放在数组的起始位置。
                      再从剩余数组元素中继续寻找最小(大)元素,返回放在已排序数组的末尾
                      重复第二步,直到所有元素都排序完成
    动画演示:

    var arr = [123,203,23,13,34,65,65,45,89,13,1];
    for(var i=0;i<arr.length;i++){
    	for(var j=i+1;j<arr.length;j++){
    		//如果第一个比第二个大,就交换他们两个位置
    		if(arr[i]>arr[j]){
    			var temp = arr[i];
    			arr[i] = arr[j];
    			arr[j] = temp;
    		}
    	}
    }
    console.log(arr); //(11) [1, 13, 13, 23, 34, 45, 65, 65, 89, 123, 203]

    3.冒泡排序

    基本思想:一次比较两个相邻的数,如果不符合规则互换位置,一次比较就能够将最大或最小的值放在数组最后一位
                      继续对除【最后一位】之外的所有元素重复上述过程
    动画演示:

    var arr = [123,203,23,13,34,65,65,45,89,13,1];
    for(var i=0; i<arr.length-1; i++){
    	//每一轮比较要比多少次
    	for(var j=0; j<arr.length-1-i; j++){
    	    //如果第一个比第二个大,就交换他们两个位置
    	    if(arr[j]>arr[j+1]){
    	        var temp = arr[j];
    	        arr[j] = arr[j+1];
    	        arr[j+1] = temp;
    	    }
    	}    
    }
    console.log(arr); //(11) [1, 13, 13, 23, 34, 45, 65, 65, 89, 123, 203]

    4.插入排序

    基本思想:将数组第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
                      从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
                      如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
    动画演示:

    var arr = [123,203,23,13,34,65,65,45,89,13,1];
    var preIndex, current;
    for(var i=1;i<arr.length;i++){
    	preIndex = i-1;
    	current = arr[i];
    	while(preIndex>=0 && arr[preIndex]>current) {
    	    arr[preIndex+1] = arr[preIndex];
    	    preIndex--;
    	}
    	arr[preIndex+1] = current;
    }
    console.log(arr); //(11) [1, 13, 13, 23, 34, 45, 65, 65, 89, 123, 203]

    5.快速排序(依托递归函数)

    基本思想:在已知数据集合中随便去一个基准(pivot)
                      将其余数据以基准为中心,大于分放右边,小于的放左边
                      将左右两个子集重复以上两个步骤
    动画演示:

    var arr = [123,203,23,13,34,65,65,45,89,13,1];	
    //创建快速排序函数
    function quickSort(tempArr){
    	//递归终止条件
    	if(tempArr.length<=1){
    		return tempArr;
    	};
    	//取基准
    	var pivotIndex = Math.floor(tempArr.length/2);
    	var pivot = tempArr.splice(pivotIndex,1);
    	//分左右
    	var leftArr = [];
    	var rightArr = [];
    	for(var i=0;i<tempArr.length;i++){
    		if(tempArr[i]>pivot){
    			rightArr.push(tempArr[i]);
    		}else{
    			leftArr.push(tempArr[i]);
    	    };
    	};
    	return quickSort(leftArr).concat(pivot,quickSort(rightArr));
    };
    console.log(quickSort(arr)); //(11) [1, 13, 13, 23, 34, 45, 65, 65, 89, 123, 203]

     

    展开全文
  • JS数组排序sort()

    千次阅读 2020-09-24 11:05:29
    sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排列。 2.如果指定<方法函数>,则按<方法函数>所指定的...

    sort()方法使数组中的元素按照一定的顺序排列。

    语法:

    arrayObject.sort(方法函数)
    

    参数说明:

    1.如果不指定<方法函数>,则按unicode码顺序排列。

    2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。

    myArray.sort(sortMethod);
    

    注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

    若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。 若返回值>-1 && <1,则表示 A 和 B
    具有相同的排序顺序。 若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

    1.使用sort()将数组进行排序,代码如下:

    <script type="text/javascript">
      var myarr1 = new Array("Hello","John","love","JavaScript"); 
      var myarr2 = new Array("80","16","50","6","100","1");
      document.write(myarr1.sort()+"<br>");
      document.write(myarr2.sort());
    </script>
    

    运行结果:

    Hello,JavaScript,John,love 
    1,100,16,50,6,80
    

    注意:上面的代码没有按照数值的大小对数字进行排序。

    2.如要实现这一点,就必须使用一个排序函数,代码如下:

    <script type="text/javascript">
      function sortNum(a,b) {
      return a - b;
     //升序,如降序,把“a - b”该成“b - a”
    }
     var myarr = new Array("80","16","50","6","100","1");
      document.write(myarr + "<br>");
      document.write(myarr.sort(sortNum));
    </script>
    

    运行结果:

    80,16,50,6,100,1
    1,6,16,50,80,100
    
    展开全文
  • 在学习JavaScript中,做的笔记,关于数组排序的,具体是按字母升序排序,按数字升序或降序排序。如有需要,请自行下载。
  • js对数字数组和对象数组排序

    千次阅读 2019-03-06 13:56:48
    JavaScript中经常需要对数组进行排序: 常见的需要排序数组:数字数组,对象数组 数字数组:[1,2,3,4,5,6,7,8…] 对象数组:[obj1,obj2,obj3,obj4…] 解决方法:js自身拥有的sort(); 下图是JavaScript对sort()...

    在JavaScript中经常需要对数组进行排序:
    常见的需要排序的数组:数字数组对象数组
    数字数组:[1,2,3,4,5,6,7,8…]
    对象数组:[obj1,obj2,obj3,obj4…]
    解决方法:js自身拥有的sort();

    下图是JavaScript对sort()方法的定义:

    在这里插入图片描述
    其中sortby参数是我们需要注意的重点:
    最常见的排序方式分为升序(asc)和降序(desc):

    //升序函数
    function asc(a,b){return a-b};
    //降序函数
    function desc(a,b){return b-a};
    var arr = [1,2,3,4,5]
    console.log(arr.sort(asc));
    console.log(arr.sort(desc));
    

    数字数组排序:

    在这里插入图片描述

    对象数组,按对象属性排序

    function user(id,age,sex){
              this.id = id;
              this.age = age;
              this.sex = sex;
    }
    //测试数组
    var user1 = new user(1,24,"男");
    var user2 = new user(2,18,"女");
    var user3 = new user(3,30,"男");
    var user4 = new user(4,35,"女");
    var user5 = new user(5,20,"男");
    var usersArr = [];
    usersArr.push(user1);
    usersArr.push(user2);
    usersArr.push(user3);
    usersArr.push(user4);
    usersArr.push(user5);
    //升序函数
    function asc(a,b){return a.id - b.id};
    //降序函数
    function desc(a,b){return b.id - a.id};
    //测试按user的id属性排序
    console.log(usersArr.sort(asc));
    console.log(usersArr.sort(desc));
    //测试按user的age属性排序
    console.log(usersArr.sort(function(a,b){return a.age - b.age}));
    console.log(usersArr.sort(function(a,b){return b.age - a.age}));
    
    1. 按id排序:

    在这里插入图片描述

    1. 按age排序

    在这里插入图片描述

    注:

    sort()方法在原始数组上操作,会改变原始数组内元素的顺序,如果不想改变原始数组,可以使用拷贝方式concat()得到一个副本数组

    展开全文
  • 按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function getRandomPlayCard(m){ var array1=new Array(m); for(var i=0;i<m;i++){ var rnd=Math.floor(Math.random()*(i+0...
  • 本文仅仅是实现了javascript 对象数组根据对象object key的值排序,算是对自己学习javascript这么久的一个小结,希望大家能够喜欢
  • 主要介绍了JS实现json数组排序操作,结合实例形式分析了javascript针对json数组的遍历、排序简单操作技巧,需要的朋友可以参考下
  • js给一个数组排序

    千次阅读 2018-06-04 16:35:44
    //一个数组排序 var arr [ 1, 2, 3, 4, 5]; arr.sort(function (a,b) { // return a-b; //正序 // return b-a; //降序 return a-b; })...
      //给一个数组排序
            var arr [ 1, 2, 3, 4, 5];
            arr.sort(function (a,b) {
    
                // return a-b; //正序
                // return b-a; //降序
    
                return a-b;
            })
    展开全文
  • 主要介绍了js根据json数组多个字段排序及json数组常用操作,本文通过实例代码大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
  • JS数组排序方法

    2020-11-28 03:04:18
    1.数组中已存在两个可直接用来重排序的方法:reverse()和sort()。 reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序: var values=[1,2,3,4,5]; values.reverse(); ...
  • js 带中文数组排序

    2020-06-01 11:25:21
    使用a.localeCompare(b) 用本地特定的顺序来比较两个字符串。 let a = ['第一', '第三', '第二', '第一','c','b','a','3','2','1','12'] a.sort((a, b) => { return a.localeCompare(b) }) ...
  • Sorting_arrays_JS JavaScript数组排序的不同方法
  • js数组排序的几种方法

    千次阅读 2019-10-23 10:24:19
    是的大的元素放到后边,元素交换位置,从而一步步的交换元素的位置,使得最大的元素放到数组的末尾,这样内部的循环就进行了一轮,再根据外部的循环依次再把次大一点的元素放到数组的末尾,从而实现数组的逐步排序。...
  • js实现数组排序

    2020-12-07 13:21:32
    一、JavaScript sort() 方法 定义和用法 sort() 方法用于对数组的元素进行排序。 语法 arrayObject.sort(sortby) 参数 描述 sortby 可选。规定排序顺序。必须是函数。 返回值 对数组的引用。请注意...
  • 主要介绍了JS sort方法基于数组对象属性值排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • js数组排序的三种方法

    万次阅读 2018-07-02 16:59:54
    // 快速排序var quickSort = function(arr) { if(arr.length &lt; 1) {//如果数组就是一项,那么可以直接返回 return arr; } var centerIndex = Math.floor(arr.length / 2);//获取数组中间的索引 var center...
  • JavaScript数组排序

    千次阅读 2016-07-22 14:34:35
    数组中已经存在两个重排序方法:reverse()和sort()。  我们先来看下比较简单的reverse()方法: reverse()将数组项的顺序进行反转。 var numList1=[1,2,3,4,5,6]; numList1.reverse(); console.log(numList1);/...
  • 本文实例讲述了JavaScript自定义数组排序方法。分享大家供大家参考。具体分析如下: Array中有自带的排序功能,这个使用起来比较方便,我们有一点必须清楚,就是排序的依据,如果sort不传入参数的话,那就是按照...
  • 主要介绍了js 根据对象数组中的属性进行排序实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 一、用sort()方法进行数组排序 var arr1 = [20, 80, 54, 78, 8, 67, 27]; function my(a,b){ return a-b; } console.log(arr1.sort(my));//8,20,27,54,67,78,80 二、冒泡排序 var arr1 = [20, 80, 54,...
  • js如何二维数组排序

    2021-09-11 23:32:58
    下面是我自己在项目中用到的二维数组排序;对于中文的排序用到了Unicode码进行排序,有个缺点就是中文只对第一个字排序,有需求者可以修改代码实现 /** * @description:降序 排序根据哪那个字段,适用于二维数组排序 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,686
精华内容 45,874
关键字:

js给数组排序