Функция $.map()
Определение и применение
Функция $.map() преобразует значения массива или объекта в новый массив. Она полезна при подготовке
списка подписей, идентификаторов или нескольких выходных значений из одного исходного элемента.
Синтаксис
const values = $.map(array, function (value, index) { return transformed; });
const entries = $.map(object, function (value, key) { return transformed; });Параметры и возвращаемое значение
Первый аргумент обработчика — значение, второй — индекс или ключ. Обычный результат добавляется в массив;
null и undefined пропускаются. Возвращённый массив разворачивается на один уровень, позволяя
одному входному элементу дать несколько результатов.
Возвращается обычный массив, исходный контейнер не изменяется. Для jQuery-коллекции существует отдельный метод
.map()
с другим порядком аргументов обработчика: индекс, элемент.
Особенности и совместимость
Поддержка массивов есть с 1.0, обычных объектов — с 1.6. Для объектов могут учитываться унаследованные перечисляемые
свойства; если нужны только собственные, заранее подготовьте данные через Object.entries().
Array.prototype.map() сохраняет null и вложенные массивы. Поэтому он не всегда заменяет
$.map() без изменений. Для сочетания преобразования и разворачивания можно рассмотреть
flatMap(), явно задав правило пропуска.
Документация
Пример использования
Пропуск и разворачивание результата: попробуйте сами
Положительные числа дают по два значения, отрицательное пропускается. Результат: 2, 20, 3, 30. Используется jQuery 4.0.0.
index.html
<pre id="result"></pre>
main.js
const result = $.map([2, -1, 3], function (value) {
if (value < 0) {
return null
}
return [value, value * 10]
})
$('#result').text(result.join(', '))
Нажмите , чтобы запустить пример.