Методы массивов: flat, fill
JavaScript простым языком
Last updated
Was this helpful?
JavaScript простым языком
Last updated
Was this helpful?
Данный метод появился недавно, но он очень крут. Он создает новый массив из всех подмассивов содержащихся в нем уменьшая мерность на указанное значение (по умолчанию 1
). Наверное звучит очень сложно и запутанно и, скорее всего, прямо сейчас ты мало где сможешь применить данный метод на практике. Но пример все равно давай посмотрим:
Как видишь, массив arr
был преобразован в новый. Как ты можешь заметить, все подмассивы, которые были внутри массива arr
как бы распаковались на 1
уровень вложенности. Если третьим элементом в массиве arr
был массив [4, 5]
, то сейчас он распаковался и перестал существовать как массив.
В этом же массиве arr
4-м элементом был массив с массивом (т.е. это 2 уровня вложенности
), но теперь он выглядит как простой массив [7, 8]
, т.е. начальный массив с массивом распаковался в обычный массив (один уровень вложенности
исчез).
Данный уровень сглаживания вложенности, который, повторюсь, по умолчанию равен 1
– может быть задан. Для этого в метод flat
нужно передать число, которое и будет являться этим уровнем сглаживания.
Так как мы не всегда можем знать уровень вложенности подмассивов, мы можем указать в качестве параметра значение бесконечности – Infinity
. Это позволит нам убрать абсолютно все вложенности во всех подмассивах. Пример:
Какие бы глубины вложенности не были теперь массивы внутри массива arr
, они всегда будут распакованы в один одноуровневый массив
.
Метод fill
заменяет или заполняет элементы массива одним и тем же значением. Для замены или заполнения конкретных отрезков массива можно указать индексы начального и конечного элементов, которые требуют заполнения/замены
.
Рассмотрим вызов метода:
Первый аргумент – значение, которое заполняет/заменяет
элементы массива;
Второй аргумент – индекс после которого необходимо вставить указанное значение;
Третий аргумент – индекс до которого необходимо вставить указанное значение.
Получаем:
Что полностью соответствует ожиданиям.