Как поменять порядок всех элементов массива на обратный?
Массивы и структуры данных
Порядок элементов массива меняют на обратный методом `reverse()` (мутирует исходный) или `toReversed()` (ES2023, возвращает новый), или через spread + reverse.
reverse() — мутирует
Разворачивает массив на месте, изменяя исходный:
const arr = [1, 2, 3];
arr.reverse(); // [3, 2, 1] — arr изменён!toReversed() — иммутабельно (ES2023)
Возвращает новый развёрнутый массив, исходный не трогает:
const arr = [1, 2, 3];
const reversed = arr.toReversed(); // [3, 2, 1], arr не изменёнИммутабельно через spread
const reversed = [...arr].reverse(); // копия, потом reverseНе мутирует исходный (reverse применяется к копии).
В React/иммутабельном коде
Не мутировать состояние — использовать toReversed или [...arr].reverse():
setItems([...items].reverse()); // правильно
// items.reverse() — неправильно (мутация)Ручной способ (без методов)
function reverse(arr) {
const result = [];
for (let i = arr.length - 1; i >= 0; i--) {
result.push(arr[i]);
}
return result;
}Или два указателя (на месте):
let l = 0, r = arr.length - 1;
while (l < r) { [arr[l], arr[r]] = [arr[r], arr[l]]; l++; r--; }Коротко для собеседования
Порядок массива обращают: reverse() (мутирует исходный, [3,2,1]), toReversed() (ES2023, возвращает новый, не трогает исходный) или [...arr].reverse() (иммутабельно через копию). В React используют toReversed/[...arr].reverse(), не arr.reverse() (мутация). Без методов — цикл с конца или два указателя.