From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/array/length/index.html | 146 +++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/array/length/index.html (limited to 'files/ru/web/javascript/reference/global_objects/array/length') diff --git a/files/ru/web/javascript/reference/global_objects/array/length/index.html b/files/ru/web/javascript/reference/global_objects/array/length/index.html new file mode 100644 index 0000000000..402e1005a4 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/array/length/index.html @@ -0,0 +1,146 @@ +--- +title: Array.length +slug: Web/JavaScript/Reference/Global_Objects/Array/length +tags: + - Array + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Array/length +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Сводка

+ +

Cвойство length объекта, который является экземпляром типа Array , устанавливает или возвращает число элементов этого массива. Значение данного свойства 32-битное безнаковое целое число, которое всегда численно больше чем самый наибольший индекс в массиве.

+ +
var items = ['shoes', 'shirts', 'socks', 'sweaters'];
+items.length;
+
+// возвращает 4
+ +

Синтаксис

+ +
arr.length
+ +

Описание

+ +

Свойство length является целым числом с положительным знаком и значением, меньшим чем 2 в степени 32 (232).

+ +
var namelistA = new Array(4294967296); //2 в 32 степени = 4294967296
+var namelistC = new Array(-100) //отрицательная величина
+
+console.log(namelistA.length); //RangeError: Invalid array length
+console.log(namelistC.length); //RangeError: Invalid array length
+
+
+
+var namelistB = [];
+namelistB.length = Math.pow(2,32)-1; //устанавливает длину массива меньше 2 в 32 степени
+console.log(namelistB.length);
+
+//4294967295
+
+ +

В любой момент вы можете установить свойство length для обрезки массива. Когда вы расширяете массив, изменяя его свойство length, реальное количество элементов в массиве увеличивается; например, если вы установите свойство length в 3, когда оно равно 2, массив будет из 3 элементов, где значение третьего элемента будет равно undefined .

+ +
var arr = [1, 2, 3];
+printEntries(arr);
+
+arr.length = 5; // устанавливает длину массива 5.
+printEntries(arr);
+
+function printEntries(arr) {
+  var goNext = true;
+  var entries = arr.entries();
+  while (goNext) {
+    var result = entries.next();
+    if (result.done !== true) {
+      console.log(result.value[1]);
+      goNext = true;
+    } else
+      goNext = false;
+  }
+  console.log('=== printed ===');
+}
+
+// 1
+// 2
+// 3
+// === printed ===
+// 1
+// 2
+// 3
+// undefined
+// undefined
+// === printed ===
+ +

Таким образом, свойство length ничего не говорит о количестве определённых значений в массиве. Также смотрите раздел Взаимосвязь свойства length с числовыми свойствами.

+ +

{{js_property_attributes(1, 0, 0)}}

+ +

Примеры

+ +

Пример: итерирование по массиву

+ +

В следующем примере массив numbers итерируется до значения свойства length, показывающего, сколько элементов содержит массив. Значение каждого элемента удваивается.

+ +
var numbers = [1, 2, 3, 4, 5];
+
+for (var i = 0; i < numbers.length; i++) {
+  numbers[i] *= 2;
+}
+// Массив numbers теперь равен [2, 4, 6, 8, 10];
+
+ +

Пример: сокращение массива

+ +

Следующий пример сокращает массив statesUS до длины в 50 элементов, если текущая длина массива больше 50.

+ +
if (statesUS.length > 50) {
+  statesUS.length = 50;
+}
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
ECMAScript 1-е издание.СтандартИзначальное определение.
{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ESDraft')}}    
+ +

Совместимость с браузерами

+ +
+

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

+
+ +

Смотрите также

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