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); // 3undefined 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); // 33
Исторические изменения и современные стандарты
В ES6 (ECMAScript 2015) появились новые методы для работы с массивами:
- Array.from() - для создания массивов из итерируемых объектов
- Array.of() - для создания массивов из аргументов
- Методы find(), findIndex(), includes() для поиска элементов
В ES2016 добавлен метод Array.prototype.includes().
В ES2019 появились методы flat() и flatMap() для работы с многомерными массивами.
Развитие стандартов привело к появлению типизированных массивов (Int8Array, Uint8Array и др.) для работы с бинарными данными.
Современный JavaScript рекомендует использовать литералы массивов [] вместо конструктора new Array() для лучшей производительности и читаемости кода.
Расширенные примеры использования
Создание многомерных массивов:
// Создание матрицы 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 для инициализации:
// Создание массива с последовательными числами
let arr = Array.from({length: 5}, (_, i) => i * 2);
console.log(arr);[0, 2, 4, 6, 8]
Создание массива из аргументов функции:
function createArray() {
return Array.from(arguments);
}
console.log(createArray(1, 2, 3, 4));[1, 2, 3, 4]
Работа с NodeList и другими коллекциями:
// Преобразование NodeList в массив
let divs = document.querySelectorAll('div');
let divArray = Array.from(divs);
// Теперь доступны методы массивов
divArray.forEach(div => console.log(div));// Выведет все div элементы на странице
Создание массива с помощью генератора:
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};// Создан массив из трех элементов