Array.flat(): раскрытие вложенных массивов
Метод flat создаёт новый массив, раскрывая вложенные массивы до заданной глубины.
Назначение
Метод flat создаёт новый массив, раскрывая вложенные массивы до заданной глубины.
Как это работает
Глубина по умолчанию равна одному уровню. Это операция над вложенностью массивов, а не над свойствами объектов. Исходная внешняя коллекция сохраняется.
Пример
const source=[1,[2,[3]]];
console.assert(JSON.stringify(source.flat())==="[1,2,[3]]");
console.assert(JSON.stringify(source.flat(2))==="[1,2,3]");
console.assert(source.length===2);
Что должно получиться
Один вызов по умолчанию сохраняет внутренний [3], а глубина 2 раскрывает его. Исходная коллекция по-прежнему имеет два элемента на верхнем уровне.
Граница применения и частая ошибка
Не задавайте бесконечную глубину только потому, что структура данных неизвестна. Сначала определите ожидаемый формат, иначе ошибка вложенности может незаметно превратиться в другой набор данных.
Самостоятельная проверка
Сравните flat() и flat(2) на трёх уровнях. Затем добавьте объект с массивом внутри свойства и убедитесь, что свойство автоматически не раскрывается.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.