Apply your JS skills to key Mozilla projects as an MDN Fellow! http://mzl.la/MDNFellowship

mozilla

Compare Revisions

Array.prototype.sort()

Change Revisions

Revision 429843:

Revision 429843 by dbruant on

Revision 429845:

Revision 429845 by dbruant on

Title:
Array.prototype.sort
Array.prototype.sort
Slug:
Web/JavaScript/Reference/Global_Objects/Array/sort
Web/JavaScript/Reference/Global_Objects/Array/sort
Tags:
"Array", "Array methods"
"Array", "Array methods"
Content:

Revision 429843
Revision 429845
t192    <h2 id="Old_implementations_details">t
193      Old implementations details
194    </h2>
195    <p>
196      Sort is stable in <a href="/en-US/docs/SpiderMonkey" title=
>"SpiderMonkey">SpiderMonkey</a> and all Mozilla-based browsers st 
>arting with <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a> 1 
>.9 (see {{Bug(224128)}}). 
197    </p>
198    <p>
199      The behavior of the <code>sort</code> method changed betwee
>n JavaScript 1.1 and JavaScript 1.2. 
200    </p>
201    <p>
202      In JavaScript 1.1, on some platforms, the <code>sort</code>
> method does not work. This method works on all platforms for Jav 
>aScript 1.2. 
203    </p>
204    <p>
205      In JavaScript 1.2, this method no longer converts <a href="
>/en-US/docs/JavaScript/Reference/Global_Objects/undefined" title= 
>"JavaScript/Reference/Global_Properties/undefined">undefined</a>  
>elements to <code>null</code>; instead it sorts them to the high  
>end of the array. For example, assume you have this script: 
206    </p>
207    <pre class="brush: js">
208var a = [];
209a[0] = "Ant";
210a[5] = "Zebra";
211 
212// assumes a print function is defined
213function writeArray(x) {
214  for (i = 0; i &lt; x.length; i++) {
215    print(x[i]);
216    if (i &lt; x.length-1)
217      print(", ");
218  }
219}
220 
221writeArray(a);
222a.sort();
223print("\n");
224writeArray(a);
225</pre>
226    <p>
227      In JavaScript 1.1, JavaScript prints:
228    </p>
229    <pre>
230ant, null, null, null, null, zebra
231ant, null, null, null, null, zebra
232</pre>
233    <p>
234      In JavaScript 1.2, JavaScript prints:
235    </p>
236    <pre>
237ant, undefined, undefined, undefined, undefined, zebra
238ant, zebra, undefined, undefined, undefined, undefined
239</pre>
240    <p>
241      &nbsp;
242    </p>

Back to History