> Какие элементы и в каком порядке хранятся в результирующем массиве в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Avito

Стек: JavaScript

> Пример ответа

В JavaScript порядок хранения элементов в результирующем массиве зависит от метода, который его создаёт. Рассмотрим основные случаи:

  1. Array.prototype.map() - возвращает новый массив той же длины, элементы расположены в том же порядке, что и в исходном массиве. Например, [1, 2, 3].map(x => x * 2)[2, 4, 6].

  2. Array.prototype.filter() - возвращает массив с элементами, прошедшими проверку, в порядке их появления в исходном массиве. Пропущенные элементы не включаются. Например, [1, 2, 3, 4].filter(x => x > 2)[3, 4].

  3. Array.prototype.reduce() - возвращает одно значение (не массив), но если аккумулятор - массив, то порядок определяется логикой редьюсера. Обычно сохраняется исходный порядок, если не используется unshift.

  4. Array.prototype.concat() - объединяет массивы в порядке их перечисления: сначала элементы первого массива, затем второго и т.д. Например, [1, 2].concat([3, 4])[1, 2, 3, 4].

  5. Array.prototype.flat() - раскрывает вложенные массивы в порядке обхода слева направо, сохраняя последовательность. Например, [1, [2, [3]]].flat(2)[1, 2, 3].

  6. Array.from() - создаёт массив из итерируемого объекта, элементы располагаются в порядке итерации. Например, Array.from('abc')['a', 'b', 'c'].

  7. Array.prototype.sort() - изменяет порядок на месте, но если нужно получить новый массив, то после сортировки элементы идут в порядке, определённом функцией сравнения (по умолчанию - лексикографический).

  8. Оператор spread (...) - разворачивает итерируемый объект в новый массив, сохраняя порядок итерации.

Таким образом, в большинстве случаев результирующий массив хранит элементы в том же порядке, что и исходный, за исключением методов, которые явно изменяют порядок (например, sort, reverse).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью