当前位置: 首页 > Web前端 > HTML

根据对象中的某个属性,排序

时间:2023-04-03 00:23:44 HTML

如果后台传过来的对象顺序打乱或者对象有多个属性,需要在本页面按id排序,在另一个页面需要按数量排序。这里使用字符的Unicode属性进行排序sort提供相关方法

idnamenumlevel
//待排序的数据vardata=[{"id":1,"name":"abc","num":123,"level":"一二三四"//Unicode值\u4e00\u4e8c\u4e09\u56db},{"id":5,"name":"acb","num":456,"level":"Oneturn"//Unicode值\u4e00\u8f6c},{"id":2,"name":"bac","num":234,"level":"Success"//Unicode值\u6210\u529f\u529f},{"id":3,"name":"a12","num":345,"level":"7days"//Unicode值\u4e03\u65e5},{"id":4,"name":"a32","num":567,"level":"Worship"//Unicode值\u793c\u62dc}]//调用排序方法,根据关键字排序level//true表示升序排序,如果传入false表示降序排序//当第二个参数position不传值时,默认为升序排序data.sort(sort(sortBy('level',true));//渲染数据re(data);functionre(data){varstr="";for(vari=0;i'+''+data[i].id+''+''+data[i].name+''+''+data[i].num+''+''+data[i].level+''+''}$("tbody").html(str)}functionsortBy(attr,rev){//第二个参数不传默认升序if(rev==undefined){rev=1;}else{rev=(rev)?1:-1;}返回函数(a,b){a=a[attr];b=b[属性];如果(ab){返回rev*1;}返回0;}}结果按级别排序汉字按照汉字的Unicode编码进行排序。目前还没有办法按照汉字的拼音来排序。希望大家多多指教,查询Unicode网站http://tool.chinaz.com/tools/...SortresultsbyidSortresultsbynameSortresultsbynum