1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0//EN">
6 <style type=
"text/css">
9 font-family: verdana
, sans-serif
;
29 text-decoration:underline
;
34 text-decoration: none
;
47 border-bottom-width:1px;
48 border-bottom-style:dotted
;
64 <table width=
"90%" border=
"0" cellspacing=
"1" cellpadding=
"5">
67 <big><tt>Global.String.Sorter
(field,
order)
</tt></big><br>
73 factory to create functions for sorting objects in an array
<br><br>
76 <li><b>Parameter
</b> <code>String
</code>:
<br/>
77 name of the field each object is compared with
<li><b>Parameter
</b> <code>Number
</code>:
<br/>
78 order (ascending or descending)
79 <li><b>Returns
</b><br>
80 Function ready for use in Array.prototype.sort
91 <table width=
"90%" border=
"0" cellspacing=
"1" cellpadding=
"5">
93 <td>Sourcecode in /root/helma-
1.6.1/modules/core/String.js:
94 <pre><font color=
"#aaaaaa">586:
</font> String.Sorter = function(field, order) {
95 <font color=
"#aaaaaa">587:
</font> if (!order)
96 <font color=
"#aaaaaa">588:
</font> order =
1;
97 <font color=
"#aaaaaa">589:
</font> var key = field +
<font color=
"#9999aa">":
"</font> + order;
98 <font color=
"#aaaaaa">590:
</font> if (!String.Sorter.cache[key]) {
99 <font color=
"#aaaaaa">591:
</font> String.Sorter.cache[key] = function(a, b) {
100 <font color=
"#aaaaaa">592:
</font> var str1 = String(a[field] || String.NULL).toLowerCase();
101 <font color=
"#aaaaaa">593:
</font> var str2 = String(b[field] || String.NULL).toLowerCase();
102 <font color=
"#aaaaaa">594:
</font> if (str1
> str2)
103 <font color=
"#aaaaaa">595:
</font> return order *
1;
104 <font color=
"#aaaaaa">596:
</font> if (str1
< str2)
105 <font color=
"#aaaaaa">597:
</font> return order * -
1;
106 <font color=
"#aaaaaa">598:
</font> return
0;
107 <font color=
"#aaaaaa">599:
</font> };
108 <font color=
"#aaaaaa">600:
</font> }
109 <font color=
"#aaaaaa">601:
</font> return String.Sorter.cache[key];
110 <font color=
"#aaaaaa">602:
</font> }