1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
---
title: Array.prototype.push()
slug: Web/JavaScript/Reference/Global_Objects/Array/push
tags:
- Array
- JavaScript
- Method
- Prototype
translation_of: Web/JavaScript/Reference/Global_Objects/Array/push
---
<div>{{JSRef("Global_Objects", "Array")}}</div>
<h2 id="Summary">Сводка</h2>
<p>Метод <code><strong>push()</strong></code> добавляет один или более элементов в конец массива и возвращает новую длину массива.</p>
<h2 id="Syntax">Синтаксис</h2>
<pre class="syntaxbox"><code><var>arr</var>.push(<var>element1</var>, ..., <var>elementN</var>)</code></pre>
<h3 id="Parameters">Параметры</h3>
<dl>
<dt><code>element<em>N</em></code></dt>
<dd>Элементы, добавляемые в конец массива.</dd>
</dl>
<h3 id="Returns">Возвращаемое значение</h3>
<p>Новое значение свойства {{jsxref("Array.length", "length")}} объекта, для которого был вызван данный метод.</p>
<h2 id="Description">Описание</h2>
<p>Метод <code>push</code> присоединяет значения к массиву.</p>
<p>Метод <code>push</code> не является привязанным к типу; этот метод может быть {{jsxref("Function.call", "вызван", "", 1)}} или {{jsxref("Function.apply", "применён", "", 1)}} к объектам, напоминающим массив. Метод опирается на свойство <code>length</code> для определения места вставки значений. Если свойство <code>length</code> не может быть преобразовано в число, будет использовать индекс 0. Сюда входит случай несуществования свойства <code>length</code>, в этом случае оно также будет создано.</p>
<p>Единственными родными массивоподобными объектами являются {{jsxref("Global_Objects/String", "строки", "", 1)}}, хотя к ним он не может быть применён, поскольку строки являются неизменяемыми.</p>
<h2 id="Examples">Примеры</h2>
<h3 id="Example_Adding_elements_to_an_array">Пример: добавление элементов в массив</h3>
<p>Следующий код создаёт массив <code>sports</code>, содержащий два элемента, а затем добавляет к нему ещё два элемента. Переменная <code>total</code> будет содержать новую длину массива.</p>
<pre class="brush: js">var sports = ['футбол', 'бейсбол'];
var total = sports.push('американский футбол', 'плавание');
console.log(sports); // ['футбол', 'бейсбол', 'американский футбол', 'плавание']
console.log(total); // 4
</pre>
<h3 id="Example_Merging_two_arrays">Пример: слияние двух массивов</h3>
<p>В этом примере используется функция {{jsxref("Function.apply", "apply()")}} для помещения всех элементов из второго массива в первый.</p>
<pre class="brush: js">var vegetables = ['пастернак', 'картошка'];
var moreVegs = ['сельдерей', 'свёкла'];
// Сливает второй массив с первым
// Эквивалентно вызову vegetables.push('сельдерей', 'свёкла');
Array.prototype.push.apply(vegetables, moreVegs);
console.log(vegetables); // ['пастернак', 'картошка', 'сельдерей', 'свёкла']
</pre>
<h2 id="Specifications">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарии</th>
</tr>
<tr>
<td>ECMAScript 3-е издание</td>
<td>Стандарт</td>
<td>Изначальное определение. Реализована в JavaScript 1.2.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}</td>
<td>{{Spec2('ES6')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">Совместимость с браузерами</h2>
<div>
<div>
<p>{{Compat("javascript.builtins.Array.push")}}</p>
</div>
</div>
<h2 id="See_also">Смотрите также</h2>
<ul>
<li>{{jsxref("Array.prototype.pop()")}}</li>
<li>{{jsxref("Array.prototype.shift()")}}</li>
<li>{{jsxref("Array.prototype.unshift()")}}</li>
<li>{{jsxref("Array.prototype.concat()")}}</li>
</ul>
|