логотип PurpleSchool
Иконка входа
Вход
  • Обучение
  • Войти
логотип PurpleSchool

Как работает метод from() - JavaScript

Автор

Виталий Котов

Метод from() создаёт новый массив из массивоподобного или итерируемого объекта.

Пример

// создание нового массива из строки
let newArray = Array.from("abc");

console.log(newArray);

// Вывод в консоль:
// [ 'a', 'b', 'c' ]

Синтаксис from()

Синтаксис метода from() следующий:

Array.from(arraylike, mapFunc, thisArg);

Метод from(), будучи статическим методом, вызывается с использованием имени класса Array.

Параметры from()

Метод from() принимает:

  • arraylike
    • массивоподобный или итерируемый объект для преобразования в массив.
  • mapFunc (необязательно) - функция map, которая вызывается для каждого элемента.
  • thisArg (необязательный) - значение, которое будет использоваться в качестве this при вызове mapFunc.

Примечание: Array.from(obj, mapFunc, thisArg) эквивалентен Array.from(obj).map(mapFunc, thisArg).

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

Возвращает новый экземпляр Array

Примечание: Этот метод может создавать массив из:

  • Объектов типа array
    • объектов, которые имеют свойство length и имеют индексированные элементы типа String.
  • Итерируемых объектов, таких как Map или Set.

Примеры

Пример 1: Метод from() с массивоподобными объектами

// создаём массив из строки
let array1 = Array.from("JavaScript");

console.log(array1);

Вывод в консоль:

['J', 'a', 'v', 'a', 'S', 'c', 'r', 'i', 'p', 't']

В приведенном выше примере мы использовали метод from() для создания нового массива из строки 'JavaScript'.

Мы вызвали метод с помощью класса Array как Array.from("JavaScript"). Метод возвращает новый массив ['J', 'a', 'v', 'a', 'S', 'c', 'r', 'i', 'p', 't'] и присваивает его массиву array1.

Пример 2: Метод from() с map функцией

// функция, которая возвращает новый массив
function createArray(arraylike, mapFunc) {
  return Array.from(arraylike, mapFunc);
}

// используем стрелочную функцию для mapFunc
let result = createArray([2, 4, 6], (element) => element + 2);

console.log(result);

Вывод в консоль:

[ 4, 6, 8 ]

В приведенном выше примере мы передали map функцию в метод from(), которая увеличивает каждый элемент созданного массива на 2.

Пример 3: Метод from() со множеством

// объявляем множество
let set = new Set(["JavaScript", "Python", "Go", "Python"]);

// создаём массив из заданного множества
let result = Array.from(set);

console.log(result);

Вывод в консоль:

[ 'JavaScript', 'Python', 'Go' ]

Здесь мы создали новый массив с помощью метода from() с итеративным объектом Set.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile