
Если вы новичок в разработке JavaScript, возможно, вы не знакомы с методами Array.prototype.flat() и Array.prototype.flatMap().
В этой краткой статье мы рассмотрим два мощных метода работы с массивами, которые могут оказаться невероятно полезными при работе над сложными проектами JavaScript.
Познакомившись с Array.prototype.flat() и Array.prototype.flatMap(), вы получите в свое распоряжение ценные инструменты для эффективного решения сложных задач.
Приготовьтесь разгадать скрытые глубины методов flat() и flatMap()!
плоский():
Из документов MDN:
Метод
flat()создает новый массив со всеми элементами подмассива, объединенными в него рекурсивно до указанной глубины.
Проще говоря, метод flat() — это мощный инструмент, который берет вложенный массив и волшебным образом объединяет все его элементы в один простой массив.
Он идет еще дальше, рекурсивно погружаясь в любые подмассивы, гарантируя, что они также будут объединены в окончательный результат.
У вас есть возможность указать, насколько глубоко метод должен углубляться во вложенность, что делает его невероятно универсальным.
Синтаксис:
Array.flat(depth)
depth (optional): Уровень глубины указывает, насколько глубоко должна быть сведена структура вложенного массива. По умолчанию 1.
returns: Новый массив с объединенными в него элементами подмассива.
См. пример кода ниже:
const arr1 = [0, 1, 2, [3, 4]]; console.log(arr1.flat()); // Expected output: Array [0, 1, 2, 3, 4] const arr2 = [0, 1, 2, [[[3, 4]]]]; console.log(arr2.flat(2)); // Expected output: Array [0, 1, 2, Array [3, 4]]
Подробнее о flat() читайте здесь…
плоская карта():
Из официальных документов MDN:
Метод
flatMap()возвращает новый массив, сформированный путем применения заданной функции обратного вызова к каждому элементу массива, а затем выравнивания результата на один уровень. Он идентиченmap(), за которым следуетflat()глубины 1 (arr.map(...args).flat()), но немного более эффективен, чем вызов этих двух методов по отдельности.
Давайте разберем flatMap() метод на более простые термины.
Представьте, что у вас есть массив, и вы хотите преобразовать каждый элемент с помощью определенной функции.
После применения функции к каждому элементу вы также хотите сгладить результирующий массив всего на один уровень.
Синтаксис:
Array.flatMap(callbackFn, thisArg)
callbackFn : Функция, выполняемая для каждого элемента в массиве. Он должен возвращать массив, содержащий новые элементы нового массива, или одно значение, не являющееся массивом, которое будет добавлено к новому массиву.
Функция callbackFn вызывается со следующими аргументами:element : текущий обрабатываемый элемент массива.
index : индекс текущего обрабатываемого элемента в массиве.
array : массив flatMap() был вызван.
thisArg (optional) : значение, используемое как this при выполнении callbackFn. См. итерационные методы.
Return value : новый массив, каждый элемент которого является результатом функции обратного вызова и сглажен до глубины 1.
Вот пример, иллюстрирующий использование flatMap() с вложенным массивом:
const nestedArray = [1, [2, 3], [4, 5, [6, 7]]]; const flattenedAndTransformed = nestedArray.flatMap((num) => [num * 2]); console.log(flattenedAndTransformed); // Output: [2, 4, 6, 8, 10, 12, 14]
Подробнее о flatMap() здесь
Прочтите эту 44-страничную книгу, чтобы полностью понять основы разработки API. Вы никогда не пожалеете, прочитав эту Книгу
Изучив замечательные возможности методов flat() и flatMap(), вы открыли новый уровень мастерства в манипулировании массивами JavaScript.
Вооружившись этими мощными инструментами🚀, вы сможете уверенно браться за сложные проекты и с легкостью справляться со сложными задачами.
Не забывайте экспериментировать и исследовать огромные возможности, которые предлагают эти методы, поскольку они могут значительно повысить вашу производительность и эффективность как разработчика JavaScript.
Теперь, вооружившись этими новыми знаниями, идите вперед и раскройте свое мастерство программирования! Удачного кодирования!🎉