From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../reference/global_objects/array/push/index.html | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/array/push/index.html (limited to 'files/uk/web/javascript/reference/global_objects/array/push') diff --git a/files/uk/web/javascript/reference/global_objects/array/push/index.html b/files/uk/web/javascript/reference/global_objects/array/push/index.html new file mode 100644 index 0000000000..af185f399f --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/array/push/index.html @@ -0,0 +1,136 @@ +--- +title: Array.prototype.push() +slug: Web/JavaScript/Reference/Global_Objects/Array/push +translation_of: Web/JavaScript/Reference/Global_Objects/Array/push +--- +
{{JSRef}}
+ +

Метод push() додає один або більше елементів у кінець масиву та повертає нову довжину масиву.

+ +
{{EmbedInteractiveExample("pages/js/array-push.html")}}
+ + + +

Синтаксис

+ +
arr.push(element1[, ...[, elementN]])
+ +

Параметри

+ +
+
elementN
+
Елементи, що додаються у кінець масиву.
+
+ +

Повернене значення

+ +

Нова {{jsxref("Array.length", "length")}} властивість об'єкта, на якому був визваний цей метод.

+ +

Опис

+ +

Метод push додає значення у масив.

+ +

push було навмисно створено загальним методом. Він може використовуватися з {{jsxref("Function.call", "call()")}} або {{jsxref("Function.apply", "apply()")}} на об'єктах, подібних до масивів. Метод push спирається на властивість length, щоб розуміти, з якого місця починати додавання заданих значень. Якщо властивість length неможливо перетворити на число, використовується індекс рівний 0. До цього також належить випадок, коли властивості length взагалі не існує, y цьому разі length також буде створено.

+ +

Хоча {{jsxref("Global_Objects/String", "strings", "", 1)}} - це найближчі, масивоподібні об'єкти, з ними неможливо використовувати цей метод, оскільки рядки є незмінними.  Аналогічно до найближчого, масивоподібного об'єкта {{jsxref("Functions/arguments", "arguments", "", 1)}}.

+ +

Приклади

+ +

Додавання елементів у масив

+ +

Наступний приклад створює sports масив з двома елементами, потім у нього додаються еще два елементи. Змінна total містить нову довжину масиву.

+ +
var sports = ['soccer', 'baseball'];
+var total = sports.push('football', 'swimming');
+
+console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
+console.log(total);  // 4
+
+ +

Поєднання двох масивів

+ +

Цей приклад використовує {{jsxref("Function.apply", "apply()")}} для того, щоб запушити усі елементи з другого масиву.

+ +

Не використовуйте цей метод, якщо другий масив (moreVegs у цьому прикладі) занадто великий, оскільки максимальна кількість параметрів, які може вмістити одна функція обмежена, як доводить це практика. Дивиться {{jsxref("Function.apply", "apply()")}} для отримання більш докладної інформації.

+ +
var vegetables = ['parsnip', 'potato'];
+var moreVegs = ['celery', 'beetroot'];
+
+// Merge the second array into the first one
+// Equivalent to vegetables.push('celery', 'beetroot');
+Array.prototype.push.apply(vegetables, moreVegs);
+
+console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
+
+ +

Використання об'єкта у масивоподібний спосіб

+ +

Як зазначено вище, push було навмисно створено загаліним методом, і це може зіграти нам на користь. Array.prototype.push добре працює на об'єктах, як це показує наш приклад. Зауважте, що ми не створюємо масив для зберігання колекції об'єктів. Натомість ми зберігаємо колекцію у самому об'єкті та використовуємо метод call на Array.prototype.push, щоб змусити його думати, начебто ми використовуємо його на масиві, і це працює, завдяки тому, що JavaScript дозволяє нам встановлювати контекст використання, як нам зручно.

+ +
var obj = {
+    length: 0,
+
+    addElem: function addElem(elem) {
+        // obj.length is automatically incremented
+        // every time an element is added.
+        [].push.call(this, elem);
+    }
+};
+
+// Let's add some empty objects just to illustrate.
+obj.addElem({});
+obj.addElem({});
+console.log(obj.length);
+// → 2
+
+ +

Зверніть увагу, що obj хоч і не є масивом, метод push успішно збільшив його властивість length так само, наче б ми мали справу зі справжнім масивом.

+ +

Специфікації

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецифікаціїСтатусКоментар
{{SpecName('ES3')}}{{Spec2('ES3')}}Початкове визначення. Реалізоване в JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ESDraft')}}
+ +

Сумісність з браузерами

+ +
+ + +

{{Compat("javascript.builtins.Array.push")}}

+
+ +

Дивиться також

+ + -- cgit v1.2.3-54-g00ecf