Преобразование строки в массив является необычной операцией. В зависимости от требований, строку можно разбить на предложения, слова или даже буквы. Элементы, на которые разбивается строка, будут являться элементами массива.

Строка может быть преобразована в массив несколькими способами. Рассмотрим их.

split()

Этот метод используется для разделения строки на основе предоставленного разделителя и возвращает массив разделенных элементов.

let names1 = 'Иван,Егор,Петр,Олег';
let names2 = 'Иван Егор Петр Олег';
let names3 = 'Иван | Егор | Петр | Олег';
let singleName = 'Николай';

names1.split(',');  // ['Иван', 'Егор', 'Петр', 'Олег']
names2.split(' ');  // ['Иван', 'Егор', 'Петр', 'Олег']
names3.split(' | ');  // ['Иван', 'Егор', 'Петр', 'Олег']
singleName.split('');  // ['Н', 'и', 'к', 'о', 'л', 'а', 'й']

Array.from()

Метод Array.from() возвращает массив из любого итерируемого объекта. Мы можем передать строковое значение в метод, чтобы получить массив символов.

Array.from('Николай');  // ['Н', 'и', 'к', 'о', 'л', 'а', 'й']

Метод может принимать второй параметр - функцию с обращением к каждому элементу массива, который можно дополнительно обработать.

Array.from('Николай', (val, index) => val + index);  // ['Н0', 'и1', 'к2', 'о3', 'л4', 'а5', 'й6']

Спред-оператор (...)

Спред-оператор () извлекает каждый символ строки обрабатываемого элемента и добавляет его в целевой. Мы можем выполнить эту процедуру для пустого массива, тем самым получив заполненный элементами строки.

let singleName = 'Николай';
let arr = [...singleName];
console.log(arr);  // => ['Н', 'и', 'к', 'о', 'л', 'а', 'й']

Object.assign()

Этот метод используется для копирования значений и свойств из одного или нескольких исходных объектов в целевой объект. Мы можем указать строку в качестве источника и пустой массив в качестве целевого объекта, для создания массива из строки.

let singleName = 'Николай';
let arr = Object.assign([], singleName);
console.log(arr);  // => ['Н', 'и', 'к', 'о', 'л', 'а', 'й']

Цикл for

С помощью цикла мы можем перебрать каждый символ строки и поместить его в пустой массив.

let singleName = 'Николай';
let arr = [];
for(let i of singleName) {
  arr.push(i);
}
console.log(arr);  // => ['Н', 'и', 'к', 'о', 'л', 'а', 'й']