Как перевернуть массив в JavaScript
В этой статье мы узнаем, как перевернуть массив в JavaScript.
Есть более чем один способ сделать это:
- Использование метода reverse() (встроенного)
- Использование цикла for
Есть два способа, первый прост, потому что в JavaScript есть встроенная функция, которая делает это, а второй — создать эту функцию самостоятельно.
На стадии производства вам лучше использовать то, что есть в языке, но на стадии обучения лучше понимать, что происходит за кулисами.
Наша цель в том, что есть массив, и мы хотим обратить его вспять.
Представьте, что существует такой массив, как этот:
[1, 2, 3, 4, 5]
И мы хотим обратить все вспять, чтобы было вот так
[5, 4, 3, 2, 1]
Есть два решения для достижения нашей цели:
- Использование метода reverse() (встроенного)
- Использование цикла for
Использование метода reverse() (встроенного)
Мы можем использовать метод reverse()
// Array let myArray = [1, 2, 3, 4, 5]; // Reverse the array let reversedArr = myArray.reverse(); // Result: console.log(reversedArr);
[ 5, 4, 3, 2, 1 ]
Использование цикла for
Теперь, прежде чем писать код, мы должны понять, как мы будем решать эту проблему с помощью цикла for ?
Во-первых, итерация, использующая для перебора каждого элемента в массиве, верно?
Ну, здесь это означает, что мы можем начать с последнего элемента в массиве до первого элемента (наоборот)
Затем мы можем добавить каждый элемент в новый массив.
Обобщите решение следующим образом:
- Перебрать каждый элемент в нашем массиве
- Итерация начнется от последнего к первому
5, 4, 3, 2, 1
- Добавьте каждый элемент в новый массив.
// Array let myArray = [1, 2, 3, 4, 5]; // Create new array let result = []; // Iterate over every element in our array for (let i = myArray.length - 1; i >= 0; i--) < // Add every element to new array result.push(myArray[i]); >// Result: console.log(result);
[ 5, 4, 3, 2, 1 ]
Array.prototype.reverse()
Метод reverse() на месте обращает порядок следования элементов массива. Первый элемент массива становится последним, а последний — первым.
Интерактивный пример
Синтаксис
array.reverse()
Параметры
Возвращаемое значение
Описание
Метод reverse() на месте переставляет элементы массива, на котором он был вызван, изменяет массив и возвращает ссылку на него.
Примеры
Пример: обращение порядка элементов в массиве
В следующем примере создаётся массив myArray , содержащий три элемента, а затем массив переворачивается.
var myArray = ["один", "два", "три"]; myArray.reverse(); console.log(myArray); // ['три', 'два', 'один']
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.reverse |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Array.prototype.join()
- Array.prototype.sort()
- TypedArray.prototype.reverse() (en-US)
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 4 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
Метод reverse
Метод reverse изменяет порядок элементов в массиве на обратный. Метод изменяет исходный массив (он станет перевернутым) и возвращает также перевернутый массив (можно пользоваться и так, и так).
Синтаксис
массив.reverse();
Пример
Давайте перевернем массив:
let arr = [‘a’, ‘b’, ‘c’]; arr.reverse(); console.log(arr);
Результат выполнения кода:
Пример
А теперь давайте запишем перевернутый массив в новую переменную:
let arr = [‘a’, ‘b’, ‘c’]; let res = arr.reverse(); console.log(res);
Результат выполнения кода:
Пример . Применение
Давайте перевернем символы строки в обратном порядке. Для этого разобьем строку в массив с помощью split по разделителю » (этот разделитель положит каждый символ строки в отдельный элемент массива), перевернем этот массив с помощью reverse и затем сольем перевернутый массив обратно с помощью join :
let str = ‘123456789’; let arr1 = str.split(»); let arr2 = arr1.reverse(); let res = arr2.join(»); console.log(res);
Результат выполнения кода:
Пример . Применение
Упростим решение предыдущей задачи — сольем все команды в цепочку:
let str = ‘123456789’; let res = str.split(»).reverse().join(»); console.log(res);
Результат выполнения кода:
Смотрите также
- метод split ,
который разбивает строку в массив по указанному разделителю - метод join ,
который объединяет элементы массива в строку с указанным разделителем
Как развернуть массив js
Напишем собственную функцию, которая разворачивает массив с любым уровнем вложенности:
const flatten = (array) => let flatNums = []; const map = array .map((item) => // перебираем массив Array.isArray(item) ? flatNums = [. flatNums, . flatten(item)] : flatNums = [. flatNums, item]); // => ловкость spread-оператора и никакого мошенничества // если элемент массива не является массивом, отдаём его в массив flatNums в первозданном виде // иначе передаём его повторно в нашу функцию, используя spread return flatNums; > const numbers = [1, [1], [[1, 2, [7], 8], 90], 6]; console.log(flatten(numbers)); // => [1, 1, 1, 2, 7, 8, 90, 6]
Массив распакован на все уровни вложенности.
01 декабря 2021
Чтобы развернуть массив с вложенными массивами в плоский массив, можно воспользоваться методом flat() :
const numbers1 = [1, 2, [3, 4]]; numbers1.flat(); // [1, 2, 3, 4] // Метод принимает число указывающее глубину, на которую нужно обработать вложенные массивы const numbers2 = [1, 2, [3, 4, [5, 6]]]; numbers2.flat(2); // [1, 2, 3, 4, 5, 6] // Можно передать Infinity, чтобы на полную глубину обработать массивы const numbers3 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]]; numbers3.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]