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()
элементов массива) и выводит список этих строк через запятую. Примечательно, что результат не включает квадратные скобки или какие-либо другие разделители вокруг значений массива. Например:
[1,2,3].toString() //Получается '1,2,3'
["а", "Ь", "с"]. toString() // Получается а,Ь,с'
[1, [2, 'с']].toString() //Получается '1,2,с'
Обратите внимание, что toString()
возвращает ту же строку, что и метод join()
при вызове его без аргументов.
Метод toLocaleString()
- это локализованная версия toString().
Каждый элемент массива преобразуется в строку вызовом метода toLocaleString()
элемента, а затем полученные строки объединяются с использованием специфического для региона (и определяемого реализацией) разделителя.
7.9. Методы класса Array, определяемые стандартом ECMAScript 5
Стандарт ECMAScript 5 определяет девять новых методов массивов, позволяющих выполнять итерации, отображение, фильтрацию, проверку, свертку и поиск. Все эти методы описываются в следующих далее подразделах.
Читать дальше
Конец ознакомительного отрывка
Купить книгу