js将对象数组按照自定义规则排序
javascript对一个对象数组进行自定义规则排序,对象中有两个字段。
按照对象中一个字段a的值从小到大规则排序,
效果如下:
排序前:
[0]:a=9,b=3
[1]:a=33,b=7
[2]:a=1,b=99
[3]:a=9,b=8
[4]:a=2,b=6
[5]:a=2,b=54
排序后:
[0]:a=1,b=99
[1]:a=2,b=6
[2]:a=2,b=54
[3]:a=9,b=3
[4]:a=9,b=8
[5]:a=33,b=7
代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <script type="text/javascript"> function sortNumber(a,b){ return a.a - b.a; } var arr = new Array(); arr[0] = {a:9, b:3}; arr[1] = {a:33, b:7}; arr[2] = {a:1, b:99}; arr[3] = {a:9, b:8}; arr[4] = {a:2, b:6}; arr[5] = {a:2, b:54}; document.writeln('排序前:<br />'); for(var i=0;i<arr.length;i++){ //arr[i]=i; document.writeln('[' + i + ']:a=' + arr[i].a + ',b=' + arr[i].b + '<br />'); } //document.write(arr + "<br />") document.write("<hr />排序后:<br />"); //document.write(arr.sort(sortNumber)) arr.sort(sortNumber); console.log(arr); for(var i=0;i<arr.length;i++){ //arr[i]=i; document.writeln('[' + i + ']:a=' + arr[i].a + ',b=' + arr[i].b + '<br />'); } </script> </body> </html>
化繁为简