1 //数组排序
2 var n = [15, 99, 23, 42, 4, 8, 16
];
3 n.sort(
function(a, b) {
4 return a -
b
5 });
6 console.log(n);
7
8 //字符串排序
9 var m = ['aa', 'bb', 'a', 4, 8, 15, 16, 23, 42
];
10 m.sort(
function(a, b) {
11 if (a ===
b) {
12 return 0
;
13 }
14 if (
typeof a ===
typeof b) {
15 return a < b ? -1 : 1
;
16 }
17 return typeof a <
typeof b ? -1 : 1
;
18 });
19 console.log(m);
20
21 //名字比较
22 var by =
function(name, minor) {
23 return function(o, p) {
24 var a, b;
25 if (o && p &&
typeof o === 'object' &&
typeof p === 'object'
) {
26 a =
o[name];
27 b =
p[name];
28 if (a ===
b) {
29 return typeof minor === 'function' ? minor(o, p) : 0
;
30 }
31 if (
typeof a ===
typeof b) {
32 return a < b ? -1 : 1
;
33 }
34 return typeof a <
typeof b ? -1 : 1
;
35 }
36 };
37 };
38 var s =
[{
39 first: 'Joe'
,
40 last: 'Besser'
41 }, {
42 first: 'Moe'
,
43 last: 'Howard'
44 }, {
45 first: 'Joe'
,
46 last: 'DeRita'
47 }, {
48 first: 'Shemp'
,
49 last: 'Howard'
50 }, {
51 first: 'Larry'
,
52 last: 'Fine'
53 }, {
54 first: 'Curly'
,
55 last: 'Howard'
56 }];
57 s.sort(by('first', by('last'
)));
58 console.log(s);
转载于:https://www.cnblogs.com/qzsonline/archive/2012/07/17/2595089.html