Array: примеры (JAVASCRIPT)

Функция Array в JavaScript: примеры и практическое применение
Раздел: Основные типы, Конструкторы
Array(...elements (any)): Array

Функция Array в JavaScript: основы

Array - это глобальный объект в JavaScript, используемый для создания массивов - структур данных для хранения упорядоченных коллекций значений. Хотя Array не является функцией в традиционном понимании, его можно вызывать как функцию или использовать как конструктор для создания экземпляров массивов.

Синтаксис создания массива:

new Array(element0, element1, ..., elementN)
Array(element0, element1, ..., elementN)

Основные способы использования:

  • Без аргументов - создается пустой массив
  • С одним числовым аргументом - создается массив указанной длины с пустыми слотами
  • С несколькими аргументами - создается массив с переданными элементами

Array также содержит множество статических методов и свойств, доступных через объект Array, таких как Array.isArray(), Array.from(), Array.of().

Примеры использования

Различные варианты создания массивов:

// Создание пустого массива
let arr1 = new Array();
console.log(arr1);
[]
// Создание массива с пустыми слотами
let arr2 = new Array(3);
console.log(arr2);
console.log(arr2.length);
[empty × 3]
3
// Создание массива с элементами
let arr3 = new Array(1, 2, 3);
console.log(arr3);
[1, 2, 3]
// Функциональный вызов
let arr4 = Array('a', 'b', 'c');
console.log(arr4);
['a', 'b', 'c']
// Использование Array.of()
let arr5 = Array.of(5);
console.log(arr5);
[5]

Альтернативные способы создания массивов в JavaScript

Литерал массива - наиболее распространенный и рекомендуемый способ:

let arr = [1, 2, 3];
console.log(arr);
[1, 2, 3]

Array.from() - создает массив из итерируемого или массивоподобного объекта:

let set = new Set([1, 2, 3]);
let arr = Array.from(set);
console.log(arr);
[1, 2, 3]

Array.of() - создает массив из переданных аргументов, решая проблему конструктора Array с одним числовым аргументом:

console.log(Array.of(7));
console.log(Array.of(1, 2, 3));
[7]
[1, 2, 3]

Spread оператор - позволяет преобразовывать итерируемые объекты в массивы:

let str = 'hello';
let arr = [...str];
console.log(arr);
['h', 'e', 'l', 'l', 'o']

Типичные ошибки

Путаница с одним числовым аргументом:

// Неправильное понимание
let arr = new Array(3);
console.log(arr[0]); // undefined
console.log(arr.length); // 3
undefined
3

Ожидание массива с одним числом 3, а получен массив длины 3 с пустыми слотами.

Использование Array с дробным числом:

let arr = new Array(3.5);
console.log(arr.length);
RangeError: Invalid array length

Попытка использования нечисловых строк:

let arr = new Array('3.5');
console.log(arr);
console.log(arr.length);
['3.5']
1

Некорректное использование как функции без new:

// Это работает, но может ввести в заблуждение
let arr = Array(3);
console.log(arr.length); // 3
3

Исторические изменения и современные стандарты

В ES6 (ECMAScript 2015) появились новые методы для работы с массивами:

  • Array.from() - для создания массивов из итерируемых объектов
  • Array.of() - для создания массивов из аргументов
  • Методы find(), findIndex(), includes() для поиска элементов

В ES2016 добавлен метод Array.prototype.includes().

В ES2019 появились методы flat() и flatMap() для работы с многомерными массивами.

Развитие стандартов привело к появлению типизированных массивов (Int8Array, Uint8Array и др.) для работы с бинарными данными.

Современный JavaScript рекомендует использовать литералы массивов [] вместо конструктора new Array() для лучшей производительности и читаемости кода.

Расширенные примеры использования

Создание многомерных массивов:

Пример javascript
// Создание матрицы 3x3
let matrix = new Array(3);
for(let i = 0; i < matrix.length; i++) {
  matrix[i] = new Array(3).fill(0);
}
console.log(matrix);
[
  [0, 0, 0],
  [0, 0, 0],
  [0, 0, 0]
]

Использование с Array.from для инициализации:

Пример javascript
// Создание массива с последовательными числами
let arr = Array.from({length: 5}, (_, i) => i * 2);
console.log(arr);
[0, 2, 4, 6, 8]

Создание массива из аргументов функции:

Пример javascript
function createArray() {
  return Array.from(arguments);
}
console.log(createArray(1, 2, 3, 4));
[1, 2, 3, 4]

Работа с NodeList и другими коллекциями:

Пример javascript
// Преобразование NodeList в массив
let divs = document.querySelectorAll('div');
let divArray = Array.from(divs);
// Теперь доступны методы массивов
divArray.forEach(div => console.log(div));
// Выведет все div элементы на странице

Создание массива с помощью генератора:

Пример javascript
function* numberGenerator() {
  yield 1;
  yield 2;
  yield 3;
}
let arr = Array.from(numberGenerator());
console.log(arr);
[1, 2, 3]

Аналоги в других языках программирования

Python - список (list):

# Создание списка
arr = [1, 2, 3]
arr2 = list((1, 2, 3))
print(arr)  # [1, 2, 3]
print(arr2) # [1, 2, 3]
[1, 2, 3]
[1, 2, 3]

PHP - ассоциативные и индексированные массивы:

// Создание массива
$arr = array(1, 2, 3);
$arr2 = [1, 2, 3]; // С PHP 5.4
print_r($arr);
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

C - статические массивы:

// Объявление массива
int arr[3] = {1, 2, 3};
// Динамическое выделение памяти
int* dynamic_arr = malloc(3 * sizeof(int));
dynamic_arr[0] = 1;
dynamic_arr[1] = 2;
dynamic_arr[2] = 3;
// Массив создан в памяти

Java - массивы как объекты:

// Создание массива
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
// Альтернативный синтаксис
int[] arr2 = {1, 2, 3};
// Создан массив из трех элементов

JS Array function comments

En
Array Creates a new array