Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. Array
  6. Array.prototype.flatMap()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Array.prototype.flatMap()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨январь 2020 г.⁩.

МетодflatMap() сначала применяет функцию к каждому элементу, а затем преобразует полученный результат в плоскую структуру и помещает в новый массив. Это идентичноmap функции, с последующим применением функцииflat с параметром depth ( глубина ) равным 1, ноflatMap часто бывает полезным, так как работает немного более эффективно.

Синтаксис

var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {    // возвращает элемент для new_array}[, thisArg])

Параметры

callback

Функция которая производит элементы нового массива, принимает три аргумента:

currentValue

Текущий обрабатываемый элемент массива.

indexНеобязательный

Индекс обрабатываемого элемента в массиве.

arrayНеобязательный

Массив по которому осуществляется обход.

thisArgНеобязательный

Значение используемое в качествеthis при вызове функцииcallback.

Возвращаемое значение

Новый массив, каждый элемент которого является результатом выполнения функции callback и "поднят" на уровень 1.

Описание

СмотритеArray.prototype.map() для детального описания callback функции. МетодflatMap идентичен методуmap с последующим вызовомflat с параметром depth 1.

Примеры

map иflatMap

js
let arr1 = [1, 2, 3, 4];arr1.map((x) => [x * 2]);// [[2], [4], [6], [8]]arr1.flatMap((x) => [x * 2]);// [2, 4, 6, 8]// выравнивается только один уровеньarr1.flatMap((x) => [[x * 2]]);// [[2], [4], [6], [8]]

Хотя результат полученный в примере выше можно было получить используя просто map, ниже мы рассмотрим пример гдеflatMap является более эффективным.

Давайте сгенерируем список слов из списка предложений.

js
let arr1 = ["it's Sunny in", "", "California"];arr1.map((x) => x.split(" "));// [["it's","Sunny","in"],[""],["California"]]arr1.flatMap((x) => x.split(" "));// ["it's","Sunny","in", "", "California"]

Обратите внимание, длина списка вывода может отличаться от длины списка ввода.

//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Альтернативное решение

reduce andconcat

js
var arr1 = [1, 2, 3, 4];arr1.flatMap((x) => [x * 2]);// is equivalent toarr1.reduce((acc, x) => acc.concat([x * 2]), []);// [2, 4, 6, 8]

//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.flatmap

Совместимость с браузерами

См так же

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp