Фрагмент сценария Результат. var a = new Array(‘заяц’, ‘волк’, ‘лиса’)

var a = new Array(‘заяц’, ‘волк’, ‘лиса’)

а.reverse()

document.write(а) лиса,волк,заяц

slice (begin, end) — метод позволяет выделить часть массива и возвращает ее как новый массив, который начинается с элемента с индексом begin и заканчивается элементом с индексом на единицу меньшим, чем end. Если параметр end отсутствует, возвращается часть массива от begin до конца. Следует отметить, что параметр end может также принимать отрицательные значения. В этом случае он интерпретируется как смещение последнего элемента относительно конца исходного массива. Исходный массив при выполнении данного метода остается неизменным. Будьте осторожны при вводе имени метода, не перепутайте его с описанным выше методом splice.

sort (compare) — данный метод осуществляет сортировку массива по возрастанию и возвращает результирующий отсортированный массив. Это наиболее сложный из всех методов объекта Array. Он позволяет производить сортировку массива по любому критерию. Поэтому для его выполнения необходимо задать пользовательскую функцию compare, которая бы осуществляла сравнение элементов массива (естественно, имя функции может быть выбрано любое). Данная функция вызывается интерпретатором автоматически. В качестве параметров ей передаются значения двух элементов массива. Значение, возвращаемое функцией compare (a, b), может быть:

• меньше нуля – индекс элемента а будет меньше, чем индекс элемента b;

• больше нуля – индекс элемента а будет больше, чем индекс элемента b;

• равно нулю – порядок следования элементов а и b в массиве не изменится по
отношению друг к другу.

Для того чтобы было легче понять принцип работы функции сравнения, приведем примеры подобных функций для некоторых часто используемых способов сортировки. Если необходимо отсортировать массив чисел в порядке возрастания, проще всего задать функцию compare следующим образом:

function compare(a, b) {return а - b }

Для сортировки массива чисел в порядке убывания:

function compare(a, b) {return b - а }

Для сортировки массива строк в порядке возрастания длины:

function compare(a, b) {return a.length - b.length }

Для сортировки массива строк в алфавитном порядке:

function compare(a, b)

{ var A = а.toUpperCase()

var В = b.toUpperCase()

return (A > В) - (В > А) }

Последние два примера функции сортировки содержат свойства и методы объекта String.

B методе sort () для сравнения элементов можно использовать и встроенную функцию. Для этого достаточно просто вызвать данный метод без аргументов – например а.sort (). В таком случае элементы массива будут сравниваться как строки и сортироваться в поряд­ке возрастания кодов символов. К чему это приведет для массива чисел, показано в примере ниже. Однако даже массив строк не всегда будет отсортирован таким методом в алфавитном порядке. Например, сортировка массива [‘Василий’, ‘ВЛАДИМИР’, ‘Александр’, ‘аист’] даст следующий результат [‘Александр’, ‘ВЛАДИМИР’, ‘Василий’, ‘аист’ ], что весьма далеко от алфавитного порядка. Это связано с тем, что коды всех заглавных букв меньше, чем коды строчных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: