js数组排序函数

假设n为数组长度, 则对该数组进行选择排序的运算次数为: sum(n) = (n2  + n) / 2;

function sortmethod(arr) {
     var len = arr.length, min, i, j;

     // 交换两个数组项的位置
     var swap = function(firstindex, secondindex) {
          var temp = arr[firstindex];
          arr[firstindex] = arr[secondindex];
          arr[secondindex] = temp;
     };

     var selectionsort = function() {
          for (i=0; i<len; i=i+1) {
              min = i;
              // 比较最小项目和第i项之后的剩余数组项, 以寻找更小项
              for (j=i+1; j<len; j=j+1) {
                  if (arr[min] > arr[j]) { min = j; }
              }
             // 比较初始最小项和当前最小项, 如果不想等, 则交换两者位置
             if (i !== min) { swap(i, min); }
          }
          // 返回经过排序的数组
          return arr;
     }();
}

举例说明js数组排序代码

<script language="网页特效">
  var namearr = new array("d","c","b","a");
    var idarr = new array("4","3","2","1");

var newarr=new array();
//排序前的数组
for(var i=0;i<namearr.length;i++){
newarr[i]=new array(namearr[i],idarr[i]);
document.write(newarr[i]+"<br>");
}
function sortfunction(x,y)
{
return x[0].charcodeat(0) - y[0].charcodeat(0);//根据二维数组的第三列的第一个字母的ascii码来降序排序
}
newarr.sort(sortfunction);
//排序后的数组
for(var i=0;i<namearr.length;i++){

document.write(newarr[i]+"打印"+"q:"+newarr[i][0]+"  h:"+newarr[i][1]+"<br>");
}

  function paixu(){
  for(var i=0;i<newarr.length;i++){
var ooption1 = document.createelement("option");
ooption1.text=newarr[i][0];
ooption1.value=newarr[i][1];

alert("id"+ooption1.value);
innernewform.notselfunc.add(ooption1);
}
  }

</script>
<form name="innernewform">
<select name="notselfunc" size="5" multiple style="width:100px">
</select><input type="button" onclick="paixu()" value="paixu">
</form>

再来看个简单的js数组排序实例

< html >
 < body >
   < script  type ="text/javascript" >
function  ascsort(x, y)
{
   return  x  ==  y  ?   0  : (x  >  y  ?   1  :  - 1 );
}
 
 function  descsort(x, y)
  {
   return  x  ==  y  ?   0  : (x  >  y  ?   - 1  :  1 );
}
  var  y  =   new  array(3, 1 , 2 );
 y.sort(ascsort);
 alert(y);
 </ script >
 </ body >
 </ html >

时间: 2024-09-10 21:59:38

js数组排序函数的相关文章

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

  本文给大家简单探讨下Js数组排序函数sort()的用法和示例,有需要的小伙伴可以参考下. JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: arrayObject.sort(sortby) 返回值为对数组的引用.请注意,数组在原数组上进行排序,不生成副本. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一

Js数组排序函数sort()介绍_javascript技巧

JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: arrayObject.sort(sortby) 返回值为对数组的引用.请注意,数组在原数组上进行排序,不生成副本. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 如果想按照其他标准进行排序,

深入探讨JS的数组排序函数sort()(二)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这是上一篇关于JS数组函数sort的讲解.深入探讨JS中的数组排序函数sort()和reverse().在看此文章的时候,希望大家去看下第一篇文章.因为,此篇文章是基于上一篇文章的基础上的. 好了,不废话了.开始进入我们今天的正题. 我感觉,我们在进行WEB编程的过程操作最多的是字符串和数组这两种数组类型. 8630.html"&g

PHP二维数组排序函数

HP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义. 以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:   function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){

JS常用函数和常用技巧小结_javascript技巧

学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. Ajax请求 jquery ajax函数 我自己封装了一个ajax的函数,代码如下: var Ajax = function(url, type success, error) { $.ajax({ url: url, type: type, dataType: 'json', timeout: 10000, success: fu

PHP实现的自定义数组排序函数与排序类示例_php技巧

本文实例讲述了PHP实现的自定义数组排序函数与排序类.分享给大家供大家参考,具体如下: /* * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr = array( array('a'=>1,'b'=>'c'), array('a'=>4,'b'=>'a'), array('a'=>5,'b'=>'g'), array('a'=>7,'b'=>'f'), array('a'=>6,'b'=>'

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

分享一个用于数组或者对象的排序的函数.该函数可以以任意深度的数组或者对象的值作为排序基数对数组或的元素进行排序. 代码如下: /** * 排序数组或者对象 * by Jinko * date -- * @param object 数组或对象 * @param subkey 需要排序的子键, 该参数可以是字符串, 也可以是一个数组 * @param desc 排序方式, true:降序, false|undefined:升序 * @returns {*} 返回排序后的数组或者对象 * * 注意:

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

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

PHP实现指定字段的多维数组排序函数分享

 这篇文章主要介绍了PHP实现指定字段的多维数组排序函数分享,本文分享了一段PHP指定字段的多维数组排序方法的代码,这段代码可实现根据field字段对数组进行排序,需要的朋友可以参考下     PHP数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了.本文分享了一段PHP指定字段的多维数组排序方法的代码,这段代码可实现根据field字段对数组进行排序. 代码如下: function sortArrBy