Шрифт:
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
элементов массива) и выводит список этих строк через запятую. Примечательно, что результат не включает квадратные скобки или какие-либо другие разделители вокруг значений массива. Например: