js对象数组按照多个字段进⾏排序
  Array.sort();
  sort()⽅法可以传⼊⼀个函数作为参数,然后依据该函数的逻辑,进⾏数组的排序。默认的是ascii码排序。
  ⼀般⽤法:(数组元素从⼩⼤进⾏排序)
var a = [9, 6, 5, 7, 11, 52, 15];
a.sort(function(return a-b;));
   sort()⽅法,接收了⼀个函数作为参数时,排序主要根据传⼊函数的返回值是否⼤于0进⾏排序。
1)当 a - b < 0  时,则 a 元素排在 b 元素的前⾯。
2)当 a - b = 0 时, a , b 元素的位置不变。
3)当 a - b > 0 是,则 b 元素排在 a 元素的前⾯。
sort()还可以按照多个字段进⾏排序。debug了下,是按照冒泡法进⾏的排序。不过速度还是蛮快的,快200个对象,不到1S就排序完成,不影响⽤户的体验。
sort函数 jsmysort(a,b){
if(a.age !== b.age){
return a.age < b.age ? -1 : 1;
}
else if(a.name !== b.name){
return a.name < b.name ? -1 : 1;
}
else{
return a.id - b.id;
}
}
arr = [
{name:"alie",age:20,id:20011},
{},
...
];
arr.sort(mysort);
有个稍微要注意的就是最后⼀个else是⽤⼤括号括起来的。我调试的时候java写的习惯了,最后⼀个else不加⼤括号,只是最后⼀⾏加了缩进。排序出的结果总是不对,加了⼤括号后的顺序就是对的了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。