Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание
- Название:JavaScript. Подробное руководство, 6-е издание
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2012
- Город:СПб
- ISBN:978-5-93286-215-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание краткое содержание
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
JavaScript. Подробное руководство, 6-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
7.8.1. Метод join()
Метод Array.join()
преобразует все элементы массива в строки, объединяет их и возвращает получившуюся строку. В необязательном аргументе методу можно передать строку, которая будет использоваться для отделения элементов в строке результата. Если строка-разделитель не указана, используется запятая. Например, следующий фрагмент дает в результате строку «1,2,3»:
var а = [1, 2, 3]; // Создать новый массив с указанными тремя элементами
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 - третий элемент массива с конца. Вот несколько примеров:
var а = [1,2,3,4,5];
a.slice(0,3); // Вернет [1,2,3]
а.slice(3); // Вернет [4,5]
а.slice(1,-1); // Вернет [2,3,4]
a.slice(-3,-2); // Вернет [3]
7.8.6. Метод splice()
Метод Array.splice()
- это универсальный метод, выполняющий вставку или удаление элементов массива. В отличие от методов slice()
и concat()
, метод splice()
изменяет исходный массив, относительно которого он был вызван. Обратите внимание, что методы splice()
и slice()
имеют очень похожие имена, но выполняют совершенно разные операции.
Метод splice()
может удалять элементы из массива, вставлять новые элементы или выполнять обе операции одновременно. Элементы массива при необходимости смещаются, чтобы после вставки или удаления образовывалась непрерывная последовательность. Первый аргумент метода splice()
определяет позицию в массиве, начиная с которой будет выполняться вставка и/или удаление. Второй аргумент определяет количество элементов, которые должны быть удалены (вырезаны) из массива. Если второй аргумент опущен, удаляются все элементы массива от указанного до конца массива. Метод splice()
возвращает массив удаленных элементов или (если ни один из элементов не был удален) пустой массив. Например:
Интервал:
Закладка: