flat() vs flatMap()


flat()

  • Метод flat() создает новый массив со всеми элементами подмассива, конкатенированными в него рекурсивно до указанной глубины.

  • Аргумент — Уровень глубины, указывающий, насколько глубоко должна быть сплющена вложенная структура массива. Значение по умолчанию равно 1.

  • Метод flat() удаляет пустые слоты в массивах.

const arr = [10, 20, [40,5]];
console.log(arr.flat());
// [10, 20, 40, 50]

const arrTwo = [10, [[20], 30]];
console.log(arrTwo.flat());
// [10, [20], 30]

const arrThree = [10, [[20, 30]]];
console.log(arrThree.flat(2));
// [10, 20, 30]

const arrFour = [10, [[[[20, 40]]]]];
console.log(arr.flat(Infinity));
//[10, 20, 40];
Войти в полноэкранный режим Выход из полноэкранного режима

flatMap()

  • Плоский метод flatMap() возвращает новый массив, сформированный путем применения заданной функции обратного вызова к каждому элементу массива, а затем сплющивает массив.

  • Он идентичен методу map(), за которым следует flat().

let arr = [1, [2], 3];
const resultingArr = arr.flatMap((x) => {
return x * 3;
});
console.log(resultingArr); // [3, 6, 9]

let arrTwo = [1, [2], [[3]]];
const doubleEven = arr.flatMap((x) => {
return x % 2 == 0 ? 2 * x : [];
});
console.log(doubleEven); // [4]
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий