Как перевернуть массив в js
Перейти к содержимому

Как перевернуть массив в js

  • автор:

Метод 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 ,
    который объединяет элементы массива в строку с указанным разделителем

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– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

Как развернуть массив 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] 

.reverse ( )

Метод reverse ( ) обращает порядок элементов в массиве в обратном направлении, то есть делает первый элемент последним, а последний — первым.

Метод изменяет массив, по отношению к которому вызван, и возвращает ссылку на изменённый массив.

Пример

Скопировать ссылку «Пример» Скопировано

При вызове reverse ( ) для массива [1 , 2 , 3 ] он превратится в [3 , 2 , 1 ] .

 const array = [1, 2, 3]array.reverse()console.log(array)// [3, 2, 1] const array = [1, 2, 3] array.reverse() console.log(array) // [3, 2, 1]      

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Метод reverse ( ) не принимает аргументов.

Как понять

Скопировать ссылку «Как понять» Скопировано

Метод reverse ( ) не создаёт новый массив, а изменяет текущий.

Так как метод не создаёт новый массив, а изменяет существующий, то возвращаемое значение — это только ссылка на исходный массив.

Сохраним возвращённое значение в переменную и убедимся, что это ссылка на тот же массив:

 const arr = [1, 2, 3]const result = arr.reverse() console.log(result)// [3, 2, 1]console.log(arr)// [3, 2, 1] console.log(result === arr)// true const arr = [1, 2, 3] const result = arr.reverse() console.log(result) // [3, 2, 1] console.log(arr) // [3, 2, 1] console.log(result === arr) // true      

Если у массива есть «дырки» между элементами, то метод развернёт массив с учётом этих «дырок». Создадим массив с «дыркой»:

 const array = [1, 2, 3]array[5] = 6 console.log(array)// [ 1, 2, 3, 2 × empty, 6 ] array.reverse()console.log(array)// [6, 2 × empty, 3, 2, 1] const array = [1, 2, 3] array[5] = 6 console.log(array) // [ 1, 2, 3, 2 × empty, 6 ] array.reverse() console.log(array) // [6, 2 × empty, 3, 2, 1]      

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *