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

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

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

В этой статье мы узнаем, как перевернуть массив в JavaScript.

Есть более чем один способ сделать это:

  1. Использование метода reverse() (встроенного)
  2. Использование цикла 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] 

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

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