jQuery функция $.makeArray()

Определение и применение

jQuery функция $.makeArray() позволяет преобразовать массивоподобный объект в JavaScript массив.

Многие методы, как в jQuery, так и в JavaScript в целом, возвращают объекты, подобные массиву. Например, фабричная функция $() возвращает объект jQuery, который имеет много общего с массивами (свойства, оператор доступа к массиву []), но при этом не совсем то же самое, что массив, и не имеет некоторых встроенных методов массива (например, таких как pop() и reverse()).

jQuery синтаксис:

JavaScript
$.makeArray( obj )

obj - PlainObject

Добавлен в версии jQuery

1.2

Значения параметров

Параметр Описание
obj Любой объект для преобразования в JavaScript массив.

Пример использования

Пример использования jQuery функции $.makeArray()

Нажмите ▶, затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 3.1.1.

index.html
HTML
<button>Reverse</button>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
main.js
JavaScript
$(document).ready(function () {
    $('button').click(function () {
        // Возвращаем коллекцию NodeList
        const elems = document.getElementsByTagName('li')
        // Преобразуем NodeList в Array
        const arr = $.makeArray(elems)
        // изменяем порядок следования элементов массива (первый элемент массива становится последним, а последний элемент первым)
        arr.reverse()
        // вставляем содержимое в конец целевого элемента ul
        $(arr).appendTo('ul')
    })
})

В этом примере с использованием jQuery метода .click() мы при нажатии на элемент <button> (кнопка) вызываем функцию, которая:

  • С помощью JavaScript метода getElementsByTagName() выбирает все элементы <li> в документе. Метод возвращает коллекцию элементов HTMLCollection, которой мы инициализируем переменную.
  • С использованием jQuery функции $.makeArray() мы преобразуем нашу переменную (массивоподобный объект) в JavaScript массив.
  • С помощью JavaScript метода reverse() изменяем порядок следования элементов массива (первый элемент массива становится последним, а последний элемент первым).
  • С помощью jQuery метода .appendTo() вставляем это значение в элемент <ul> (маркированный список), в результате чего порядок элементов будет изменен.