Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Array.length

Опис

Властивість length в масиві відображає кількість елементів, які він містить. Ця властивість представляє собою 32-бітне додатнє ціле число, що завжди перевищує найвищий індекс у масиві.

const listA = [1, 2, 3];
const listB = new Array(6);

console.log(listA.length); // 3

console.log(listB.length); // 6

listB.length = 2 ** 32; // 4294967296
// RangeError: Неприпустима довжина масиву

const listC = new Array(-100); // Від'ємні числа не допускаються
// RangeError: Неприпустима довжина масиву

Об'єкт масиву моніторить властивість length, синхронізуючи її значення із вмістом масиву. Це означає:

  • Встановлення довжини на число, менше поточної довжини, обрізає масив - елементи, що виходять за рамки нової довжини, усуваються.
  • Встановлення будь-якого індексу масиву (додатного цілого числа менше 2^32) поза поточною довжиною веде до розширення масиву - властивість length зростає, відображаючи новий максимальний індекс.
  • Встановлення недопустимого значення довжини (наприклад, від'ємного числа або нецілого числа) викликає виняткову ситуацію RangeError.

Коли довжина встановлюється на значення, більше ніж поточна, масив розширюється за рахунок додавання порожніх місць, а не реальних значень undefined. Ці порожні слоти взаємодіють з методами масиву особливим чином; більше про це в розділі про методи масиву та порожні слоти.

const arr = [1, 2];
console.log(arr); // [ 1, 2 ]

arr.length = 5; // встановлюємо довжину масиву на 5, в теперішній момент вона 2.
console.log(arr); // [ 1, 2, <3 порожні елементи> ]

arr.forEach((елемент) => console.log(елемент)); 
// 1
// 2
Нотатка:

Маєте на увазі, що властивість Array.length читається, але безпосередньо не змінюється. Її оновлення відбувається автоматично при додаванні або видаленні елементів з масиву за допомогою таких методів, як push(), pop(), splice() та ін. Зверніть увагу, що безпосередня зміна значення Array.length може привести до обрізки або розширення масиву.

Порада:

Коли Array.length дорівнює нулю, це означає, що масив порожній. Ви можете використати це, щоб перевірити, чи є масив порожнім або виконати певні умовні дії. Наприклад:

const myArray = [];
if (myArray.length === 0) {
  console.log("Масив порожній");
} else {
  console.log("Масив має елементи");
}

Результат виведення буде "Масив порожній".

Синтаксис

Array.length

Значення

integer

Невід'ємне ціле число, менше 232.

Return

Переглядачі

Переглядач

1

1

1

4

12

Переглядач

37

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє, як використовувати властивість length масива для визначення його довжини, а також як дізнатися про властивості кожного окремого елемента масиву, включаючи довжину рядків та типи даних для нерядкових елементів.

Ітерація по масиву.

const numbers = [1, 2, 3, 4, 5];
const length = numbers.length;
for (let i = 0; i < length; i++) {
  numbers[i] *= 2;
}
// numbers тепер [2, 4, 6, 8, 10]

У прикладі масив numbers скорочується до довжини 3, якщо поточна довжина більша за 3.

const numbers = [1, 2, 3, 4, 5];

if (numbers.length > 3) {
  numbers.length = 3;
}

console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
console.log(numbers[3]); // undefined; зайві елементи видаляються

Створення порожнього масиву фіксованої довжини. Встановлення значення length більшого, ніж поточна довжина, створює розріджений масив.

const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]

Масив з незмінною властивістю length. Властивість length автоматично оновлюється масивом, коли елементи додаються поза поточною довжиною. Якщо властивість length зробити незмінною, масив не зможе її оновити. Це призводить до помилки в строгому режимі.

"use strict";

const numbers = [1, 2, 3, 4, 5];
Object.defineProperty(numbers, "length", { writable: false });
numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
numbers.push(5); // TypeError: Cannot assign to read only property 'length' of object '[object Array]'