JS sort函数的应用

原创 2013年12月04日 09:52:07

最近遇到了一个面试题目,关于排序的问题,为了完善自己的知识点,这里就写一下学习笔记

 

<html> 
<head> 
<TITLE>class_obj_js_class</TITLE> 
<script language=javaScript> 
//sort()方法默认是按照ASCII码大小排序,看下面两个例子
function sortDemo(){
   var a, l;                       // 声明变量。
   a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
   l = a.sort();                   // 排序数组。
   alert(l);
   return(l);                      // 返回排序的数组。
}
//sortDemo();

function sortDemo2(){
	var arr = [50,200,3000];
	arr.sort();
	alert(arr);
}
//显示的结果为200、3000、50,因为是根据首字母2,3,5判断的
//sortDemo2();

//将上面的数字按照数字大小写排序,if条件是对大小的判断,因此就算对大小的排序
function testFunction(){
	var numArr = new Array(9,23,124);
	numArr.sort(function compare(a,b){
		if(a>b){
			return 1;//按照升序排列,即a排在b的后面
		}
		else
			return -1;
	});
	alert(numArr);
}
//testFunction();

//如果sort(sortfunction)中的sortfunction在a>b返回的值为真则是按照降序排列,反之按照升序排列
function testFunction2(){
	var numArr = new Array(9,124,23);
	numArr.sort(function compare(a,b){
		alert("a : " + a);
		alert("b : " + b); 
		if(a > b){
			alert("a > b,返回正数");
			return -1;//按照降序排列,即a排在b的前面
		}
		else{
			alert("a < b,返回负数");
			return 1;
		}	
	});
	alert(numArr);
}
//testFunction2();

/*要使数组的元素按先奇数后偶数的顺序排列,则若需a、b交换,仅当满足a是偶数且b是奇数条件即可,再按从小到大排序,仅当满足a、b均是奇数或偶数且a>b时即可
从下面的例子可以看出,根据if的条件就是需要排序的要求,返回的值大于0就可以了,就是对一次条件的排序*/
function testAdvance(){
	var a = [1, 7, 3, 9, 5, 6, 2, 8, 4];
	function f(a, b) {
		if (0 == a % 2 && 1 == b % 2) {
			return 1;//即对偶数和奇数排序
		}
		if ((1 == a % 2 && 1 == b % 2 || 0 == a % 2 && 0 == b % 2) && a > b) {
			return 1;//对奇数和偶数排序
		}
		return -1;
	}
    alert(a.sort(f));
}
//testAdvance();

//我们要做的就是写出if里面的条件,这个条件就是返回a、b需要交换的条件
//譬如:对var a=["a","A","B","b"];进行不分大小写并从大到小排序,仅当a.toString().toLowerCase() < b.toString().toLowerCase()时,交换a、b,所以用此填充if条件即可。
function testAdvance1(){
	var a=["a","A","B","b"];
	a.sort(function test(a,b){
		if(a.toString().toLowerCase() < b.toString().toLowerCase()){
			return 1;
		}
		else 
			return -1;
	});
	alert(a);
}
testAdvance1();
</script> 

<body > 

</body> 
</html>

 
 

 

js中的sort函数的自定义函数

Array对象 function sortNum(a,b) { return b-a
  • zbreezeH
  • zbreezeH
  • 2017年04月07日 16:39
  • 630

Javascript中的sort()语法浅谈

MDN中sort定义MDN中是这样介绍sort()函数的:sort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 可能不是稳定的。默认按照字符串的Unicode码位点(code poi...
  • ccaoee
  • ccaoee
  • 2016年04月29日 19:16
  • 1619

STL sort函数的内部实现

(1)在STL提供的各式各样的算法中,sort()是最复杂最庞大的一个。这个算法只接受RandomAccessIterators(随机存取迭代器),然后将区间内所有元素由小到大重新排列。第二个版本允许...
  • ouyangjinbin
  • ouyangjinbin
  • 2016年04月08日 10:35
  • 879

JS数组sort比较函数

//从大到小的排列方式 var arr=[1,2,4,456,7,67,3]; arr.sort(function(a,b){ return a-b; ...
  • fgdfgasd
  • fgdfgasd
  • 2016年05月21日 18:07
  • 1527

谈谈JS中的sort方法

在js中我们可以对数组元素使用sort方法进行排序,比如下面这个程序:var values = [0,1,56,23,34,3]; values.sort(); ale...
  • u012934325
  • u012934325
  • 2017年03月21日 23:28
  • 1431

js的sort函数的api写的太水了

他妹的,这api说的什么鸟语  sss=[5,10,1].sort(function(x,y){ if(x>y){ return 1;}else{return -1} }) alert(s...
  • xdprintf
  • xdprintf
  • 2015年11月01日 15:46
  • 259

JSsort函数的理解

var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5]...
  • sw3358335
  • sw3358335
  • 2014年11月12日 14:28
  • 80

C++sort 函数用法

MSDN中的定义: template void sort(RanIt first, RanIt last); //--> 1) template void sort(RanIt first, RanI...
  • fly_yr
  • fly_yr
  • 2014年02月01日 17:06
  • 50773

sort()排序函数

文章http://blog.csdn.net/zzzmmmkkk/article/details/4266888
  • u013263923
  • u013263923
  • 2014年07月14日 09:38
  • 2140

浅层次理解Java Arrays.sort()函数

前几天java考试,遇到对对象数组进行排序,不太理解其中的原理,下面来更深入的理解下。(具体sort()的使用方法参加API文档) Arrays.sort()的使用主要分为对基本数据类型数组的排序和对...
  • lucia_fanchen
  • lucia_fanchen
  • 2015年05月20日 22:24
  • 8848
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS sort函数的应用
举报原因:
原因补充:

(最多只允许输入30个字)