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

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

Жанры

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

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
возвращает массив удаленных элементов или (если ни один из элементов не был удален) пустой массив. Например:

var а = [1,2,3,4,5,6,7,8];

a.splice(4); // Вернет [5,6,7,8]; а = [1,2,3,4]

a.splice(1,2); // Вернет [2,3]; а = [1,4]

a.splice(1,1); // Вернет [4]; а = [1]

Первые два аргумента метода splice определяют элементы массива, подлежащие удалению. За этими аргументами может следовать любое количество дополнительных аргументов, определяющих элементы, которые будут вставлены в массив, начиная с позиции, указанной в первом аргументе. Например:

var а = [1,2,3,4,5];

a.splice(2,0,'а','b'); // Вернет []; а = [1,2,’а','b',3,4,5]

a.splice(2,2, [1,2], 3); // Вернет ['a','b']; а = [1,2, [1,2],3,3,4,5]

Обратите внимание, что, в отличие от

concat
, метод
splice
вставляет массивы целиком, а не их элементы.

7.8.7. Методы push и рор

Методы

push
и
рор
позволяют работать с массивами как со стеками. Метод
push
добавляет один или несколько новых элементов в конец массива и возвращает его новую длину. Метод
pop
выполняет обратную операцию - удаляет последний элемент массива, уменьшает длину массива и возвращает удаленное им значение. Обратите внимание, что оба эти метода изменяют исходный массив, а не создают его модифицированную копию. Комбинация
push
и
рор
позволяет на основе массива реализовать стек с дисциплиной обслуживания «первым вошел - последним вышел». Например:

var stack = []; // стек: []

stack.push(1,2): // стек: [1,2] Вернет 2

stack.pop; // стек: [1] Вернет 2

stack.push(3); // стек: [1,3] Вернет 2

stack.pop; // стек: [1] Вернет 3

stack.push([4,5]); // стек: [1,[4,5]] Вернет 2

stack.рор // стек: [1] Вернет [4,5]

stack.рор; // стек: [] Вернет 1

7.8.8. Методы unshift и shift

Методы

unshift
и
shift
ведут себя почти так же, как
push
и
рор
, за исключением того, что они вставляют и удаляют элементы в начале массива, а не в конце. Метод
unshift
смещает существующие элементы в сторону больших индексов для освобождения места, добавляет элемент или элементы в начало массива и возвращает новую длину массива. Метод
shift
удаляет и возвращает первый элемент массива, смещая все последующие элементы на одну позицию вниз, чтобы занять место, освободившееся в начале массива. Например:

var а = []; // а:[]

a.unshift(1); // а:[1] Вернет: 1

a.unshift(22); // а:[22,1] Вернет: 2

a.shift; // а:[1] Вернет: 22

a.unshift(3,[4,5]); // а:[3,[4,5],1] Вернет: 3

a.shift; // а:[[4,5], 1 ] Вернет: 3

a.shift; // а:[1] Вернет: [4,5]

a.shift; // а:[] Вернет: 1

Обратите внимание на поведение метода

unshift
при вызове с несколькими аргументами. Аргументы вставляются не по одному, а все сразу (как в случае с методом
splice
). Это значит, что в результирующем массиве они будут следовать в том же порядке, в котором были указаны в списке аргументов. Будучи вставленными по одному, они бы расположились в обратном порядке.

7.8.9. Методы toString и toLocaleString

Массивы, как и любые другие объекты в JavaScript, имеют метод

toString
. Для массива этот метод преобразует каждый его элемент в строку (вызывая в случае необходимости методы
toString
элементов массива) и выводит список этих строк через запятую. Примечательно, что результат не включает квадратные скобки или какие-либо другие разделители вокруг значений массива. Например:

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

Древесный маг Орловского княжества 6

Павлов Игорь Васильевич
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 6

#Бояръ-Аниме. Газлайтер. Том 36

Володин Григорий Григорьевич
36. История Телепата
Фантастика:
боевая фантастика
аниме
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 36

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Бестужев. Служба Государевой Безопасности. Книга третья

Измайлов Сергей
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья

Повелители сумерек

Первушина Елена Владимировна
Фантастика:
фэнтези
ужасы и мистика
юмористическая фантастика
детективная фантастика
6.00
рейтинг книги
Повелители сумерек

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Я уже граф. Книга VII

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

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

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

Я спас СССР! том 2

Вязовский Алексей
2. Я спас СССР
Фантастика:
альтернативная история
5.62
рейтинг книги
Я спас СССР! том 2

Бродяга 3

Первухин Андрей Евгеньевич
3. Бродяга
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Бродяга 3

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Династия. Феникс

Майерс Александр
5. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Династия. Феникс

Бояръ-Аниме. Газлайтер. Том 34

Володин Григорий Григорьевич
34. История Телепата
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 34