`

js 对象排序

 
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <SCRIPT LANGUAGE="JavaScript">
  <!--
	var a = [] ;

	var obj = function(id , val){
		this.id = id ;
		this.val = val ;
	}

	var compare = function(obj1,obj2) {
		return  obj1.val - obj2.val;
	}
	
	
	var o1 = new obj(1,-1);
	var o2 = new obj(3,1);
	var o3 = new obj(2,2);
	var o4 = new obj(4,-2);
	var o5 = new obj(5,5);
	var o6 = new obj(6,-3);
	var o7 = new obj(8,-1);


	a[0] = o1 ;
	a[1] = o2 ;
	a[2] = o3 ;
	a[3] = o4 ;
	a[4] = o5 ;
	a[5] = o6 ;
	a[6] = o7 ;

	var s = "";
 
	for(var i =0 ;i <a.length ;i++){ 
		s += a[i].id+"   " + a[i].val + "<br/>"; 
	}




	a.sort(compare); 
	s += "<br/><hr/>"
	
	 
	for(var i =0 ;i <a.length ;i++){  
		s += a[i].id+"   " + a[i].val + "<br/>"; 
	}
 
	
	document.write(s);


  //-->
  </SCRIPT>
 </HEAD>

 <BODY>
  
 </BODY>
</HTML>
 附:网络找了一个js数组排序的方法
Js默认的sort方法只能按照编码顺序排序,这里做出了扩展:
//一维数组的排序 
// type 参数 
// 0 字母顺序(默认) 
// 1 大小 比较适合数字数组排序 
// 2 拼音 适合中文数组 
// 3 乱序 有些时候要故意打乱顺序,呵呵 
// 4 带搜索 str 为要搜索的字符串 匹配的元素排在前面 
function Array.prototype.SortBy(type,str){ 
  switch (type){ 
    case 0:this.sort(); break; 
    case 1:this.sort(function(a,b){ return a-b; }); break; 
    case 2:this.sort(function(a,b){ return a.localeCompare(b) }); break; 
    case 3:this.sort(function(){ return Math.random()>0.5?-1:1; }); break; 
    case 4:this.sort(function(a,b){ return a.indexOf(str)==-1?1:-1; }); break; 
    default:this.sort(); 
   } 
}
 
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics