Следующий пример создаёт 4 массива и отображает массив-оригинал, а затем - отсортированные массивы. Числовые массивы сортируются сначала без, затем - с использованием функции сравнения.
<SCRIPT> stringArray = new Array("Blue","Humpback","Beluga")
numericStringArray = new Array("80","9","700") numberArray = new Array(40,1,5,200)
mixedNumericArray = new Array("80","9","700",40,1,5,200)
function compareNumbers(a, b) { return a - b }
document.write("<B>stringArray:</B> " + stringArray.join() +"<BR>") document.write("<B>Sorted:</B> " + stringArray.sort() +"<P>")
document.write("<B>numberArray:</B> " + numberArray.join() +"<BR>") document.write("<B>Sorted without a compare function:</B> " + numberArray.sort() +"<BR>") document.write("<B>Sorted with compareNumbers:</B> " + numberArray.sort(compareNumbers) +"<P>")
document.write("<B>numericStringArray:</B> " + numericStringArray.join() +"<BR>") document.write("<B>Sorted without a compare function:</B> " + numericStringArray.sort() +"<BR>") document.write("<B>Sorted with compareNumbers:</B> " + numericStringArray.sort(compareNumbers) +"<P>")
document.write("<B>mixedNumericArray:</B> " + mixedNumericArray.join() +"<BR>") document.write("<B>Sorted without a compare function:</B> " + mixedNumericArray.sort() +"<BR>") document.write("<B>Sorted with compareNumbers:</B> " + mixedNumericArray.sort(compareNumbers) +"<BR>") </SCRIPT>
На выводе будет получено следующее. Как видно ввода, если функция сравнения используется, числа сортируются корректно, если они являются числами или строками из цифр.
stringArray: Blue,Humpback,Beluga Sorted: Beluga,Blue,Humpback
numberArray: 40,1,5,200 Sorted without a compare function: 1,200,40,5
Sorted with compareNumbers: 1,5,40,200numericStringArray: 80,9,700 Sorted without a compare function: 700,80,9 Sorted with compareNumbers: 9,80,700
mixedNumericArray: 80,9,700,40,1,5,200 Sorted without a compare function: 1,200,40,5,700,80,9 Sorted with compareNumbers: 1,5,9,40,80,200,700