/
Вопросы и ответы
/
JavaScript
/

Как преобразовать строку в массив js?

Как преобразовать строку в массив js?

5 лет назад

Человек-Молекула

Ответы

5

Для того, чтобы преобразовать строку в массив, нужно сначала определить, по какому критерию строка будет разбиваться на элементы. Например, строку можно разбить на подстроки, между которыми встречается разделитель:

1
2
3
const str = 'мама мыла раму'; // исходная строка
const result = str.split(' '); // используем метод split с указанием разделителя
// ['мама', 'мыла', 'раму']

В примере выше использовался метод split для разделения строк на элементы по определенному разделителю. Если указать в качестве разделителя пустую строку, то на выходе получим массив из символов:

1
2
// вызываем метод на строке и выводим результат
console.log('test'.split('')); // => ['t', 'e', 's', 't']

Также строки имеют некоторые свойства массивов: их можно перебирать в циклах а также можно обращаться к символам через индексы:

1
2
3
4
5
6
7
// перебираем строку в цикле
for (const symbol of 'test') {
  console.log(symbol);
}

// обращение по индексу
console.log('test'[1]); // => 'e'

Есть также быстрый способ разбить строку на символы с использованием рест-оператора:

1
2
const result = [...'hello']; // ['h', 'e', 'l', 'l', 'o'];
result.forEach((item) => console.log(item));

5 лет назад

Ivan Gagarinov

3

Помимо вышеупомянутых способов преобразования строки в массив, есть ещё один метод, которым можно воспользоваться.
Это Array.from():
Данный метод работает очень просто. Вся его работа описана в примере ниже:

1
2
3
const stringOfNumbers = '1234';
const numbers = Array.from(stringOfNumbers);
console.log(numbers); // => ['1', '2', '3', '4'] - элементы массива - строки

У данного метода есть особенность, которая может показаться недостатком.
Если в строке между словами, буквами или цифрами будут знаки препинания либо пробелы, они также станут элементами массива.

1
2
3
const stringOfNumbers = '1 2.3,4';
const numbers = Array.from(stringOfNumbers);
console.log(numbers); // => ['1', ' ', '2', '.', '3', ',', '4']

4 года назад

Виктория Аблаева

0

Строку разбивают на массив методом split(). В него передают разделитель:

1
2
3
console.log('яблоко,груша,слива'.split(','));   // => [ 'яблоко', 'груша', 'слива' ]
console.log('Привет как дела'.split(' '));      // => [ 'Привет', 'как', 'дела' ]
console.log('abc'.split(''));                   // => [ 'a', 'b', 'c' ]

Разделитель с пробелами

Если после запятой стоят пробелы, уберите их через map() и trim():

1
2
const tags = 'js, react , css'.split(',').map((tag) => tag.trim());
console.log(tags); // => [ 'js', 'react', 'css' ]

По нескольким пробелам подряд разбивают регулярным выражением:

1
console.log('один   два  три'.split(/\s+/)); // => [ 'один', 'два', 'три' ]

Посимвольно с эмодзи

split('') ломает эмодзи и некоторые символы на части. Array.from() и spread-оператор разбивают строку правильно:

1
2
3
console.log('hi😀'.split('').length);  // => 4
console.log(Array.from('hi😀'));       // => [ 'h', 'i', '😀' ]
console.log([...'hi😀']);              // => [ 'h', 'i', '😀' ]

Строку цифр в массив чисел

1
2
console.log('1,2,3'.split(',').map(Number)); // => [ 1, 2, 3 ]
console.log(Array.from('123', Number));       // => [ 1, 2, 3 ]

Строку JSON в массив

1
2
const data = JSON.parse('["a", "b", "c"]');
console.log(data); // => [ 'a', 'b', 'c' ]

Обратно: массив в строку

1
console.log(['a', 'b', 'c'].join(', ')); // => a, b, c

Строки и массивы разбирают в бесплатном курсе «Основы JavaScript».

7 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845