Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

a.join; // => "1,2,3"

a.join(" "); // => "1 2 З"

a. join(""); // => "123"

var b = new Аггау(10); // Массив с длиной, равной 10, и без элементов

b. join("-') // => "---------" строка из 9 дефисов

Метод

Array.join
является обратным по отношению к методу
String.split
, создающему массив путем разбиения строки на фрагменты.

7.8.2. Метод reverse

Метод

Array.reverse
меняет порядок следования элементов в массиве на обратный и возвращает переупорядоченный массив. Перестановка выполняется непосредственно в исходном массиве, т. е. этот метод не создает новый массив с переупорядоченными элементами, а переупорядочивает их в уже существующем массиве. Например, следующий фрагмент, где используются методы
reverse
и
join,
дает в результате строку "3,2,1":

var а = [1,2,3];

a.reverse.join; // => "3,2,1”: теперь а = [3,2,1]

7.8.3. Метод sort

Метод

Array.sort
сортирует элементы в исходном массиве и возвращает отсортированный массив. Если метод
sort
вызывается без аргументов, сортировка выполняется в алфавитном порядке (для сравнения элементы временно преобразуются в строки, если это необходимо):

var а = new Array("banana", "cherry", "apple");

a.sort;

var s = a.join(", ”); // s == "apple, banana, cherry"

Неопределенные элементы переносятся в конец массива.

Для сортировки в каком-либо ином порядке, отличном от алфавитного, методу

sort
можно передать функцию сравнения в качестве аргумента. Эта функция устанавливает, какой из двух ее аргументов должен следовать раньше в отсортированном списке. Если первый аргумент должен предшествовать второму, функция сравнения должна возвращать отрицательное число. Если первый аргумент должен следовать за вторым в отсортированном массиве, то функция должна возвращать число больше нуля. А если два значения эквивалентны (т. е. порядок их следования не важен), функция сравнения должна возвращать 0. Поэтому, например, для сортировки элементов массива в числовом порядке можно сделать следующее:

var а = [33, 4, 1111, 222];

a.sortO; // Алфавитный порядок: 1111, 222, 33, 4

a.sort(function(a,b) { // Числовой порядок: 4, 33, 222, 1111

return a-b; // Возвращает значение < 0, 0 или > 0

}); //в зависимости от порядка сортировки а и b

a.sort(function(a,b) {return b-a}); // Обратный числовой порядок

Обратите внимание, насколько удобно использовать в этом фрагменте неименованную функцию. Функция сравнения используется только здесь, поэтому нет необходимости давать ей имя.

В качестве еще одного примера сортировки элементов массива можно реализовать сортировку массива строк без учета регистра символов, передав функцию сравнения, преобразующую свои аргументы в нижний регистр (с помощью метода

toLowerCase
) перед сравнением.

а = ['ant', 'Bug', 'cat', 'Dog']

a.sort; // сортировка с учетом регистра символов: [ 'Bug', 'Dog', 'ant', 'cat' ]

a.sort(function(s,t) { // Сортировка без учета регистра символов

var а = s.toLowerCase;

var b = t.toLowerCase;

if (a < b) return -1;

if (a > b) return 1;

return 0;

}); //=>['ant','Bug','cat'.'Dog']

7.8.4. Метод concat

Метод

Array.concat
создает и возвращает новый массив, содержащий элементы исходного массива, для которого был вызван метод
concat
, и значения всех аргументов, переданных методу
concat
. Если какой-либо из этих аргументов сам является массивом, его элементы добавляются в возвращаемый массив. Следует, однако, отметить, что рекурсивного превращения массива из массивов в одномерный массив не происходит. Метод
concat
не изменяет исходный массив. Ниже приводится несколько примеров:

var а = [1,2,3];

a.concat(4,5) // Вернет [1,2,3,4,5]

а.concat([4,5]); // Вернет [1,2,3,4,5]

a.concat([4,5],[6,7]) // Вернет [1,2,3,4,5,6,7]

a.concat(4, [5,[6,7]]) // Вернет [1,2,3,4,5,[6,7]]

7.8.5. Метод slice

Метод

Array.slice
возвращает фрагмент или подмассив, указанного массива. Два аргумента метода определяют начало и конец возвращаемого фрагмента. Возвращаемый массив содержит элемент, номер которого указан в первом аргументе, плюс все последующие элементы, вплоть до (но не включая) элемента, номер которого указан во втором аргументе. Если указан только один аргумент, возвращаемый массив содержит все элементы от начальной позиции до конца массива. Если какой-либо из аргументов имеет отрицательное значение, он определяет номер элемента относительно конца массива. Так, аргументу -1 соответствует последний элемент массива, а аргументу -3 - третий элемент массива с конца. Вот несколько примеров:

Поделиться:
Популярные книги

Я еще царь. Книга XXX

Дрейк Сириус
30. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще царь. Книга XXX

Двойник Короля 7

Скабер Артемий
7. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 7

Французская новелла XX века. 1900–1939

Пруст Марсель
Проза:
классическая проза
6.25
рейтинг книги
Французская новелла XX века. 1900–1939

Петля, Кадетский Корпус. Книга четвертая

Алексеев Евгений Артемович
4. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Петля, Кадетский Корпус. Книга четвертая

Воронцов. Перезагрузка. Книга 5

Тарасов Ник
5. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 5

Государь

Кулаков Алексей Иванович
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Государь

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Старый, но крепкий 2

Крынов Макс
2. Культивация без насилия
Фантастика:
рпг
уся
эпическая фантастика
5.00
рейтинг книги
Старый, но крепкий 2

Проклятый Лекарь

Молотов Виктор
1. Анатомия Тьмы
Фантастика:
фэнтези
5.00
рейтинг книги
Проклятый Лекарь

Кодекс Императора IV

Сапфир Олег
4. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Императора IV

Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кандель Феликс Соломонович
Научно-образовательная:
история
5.00
рейтинг книги
Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Меткий стрелок. Том II

Вязовский Алексей
2. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок. Том II

Газлайтер. Том 28

Володин Григорий Григорьевич
28. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 28

Приключения русского дебютанта

Штейнгарт Гари
Проза:
современная проза
5.00
рейтинг книги
Приключения русского дебютанта