Как сделать из строки массив
Перейти к содержимому

Как сделать из строки массив

  • автор:

Метод split

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

Синтаксис

строка.split([разделитель], [максимальное количество элементов]);

Пример

Пусть дана некоторая строка с дефисами. Давайте разобьем эту строку в массив по разделителю ‘-‘ :

let str = ‘ab-cd-ef’; let arr = str.split(‘-‘); console.log(arr);

Результат выполнения кода:

Пример

Давайте опять разобьем строку по разделителю ‘-‘ , однако вторым параметром укажем максимальное количество элементов в получившемся массиве, например, 2 . В этом случае в массив запишется только 2 элемента:

let str = ‘ab-cd-ef’; let arr = str.split(‘-‘, 2); console.log(arr);

Результат выполнения кода:

Пример

Давайте каждый символ строки запишем в отдельный элемент массива:

let str = ‘abcde’; let arr = str.split(»); console.log(arr);

Результат выполнения кода:

Пример

Давайте первые 3 символа строки запишем в отдельные элементы массива:

let str = ‘abcde’; let arr = str.split(», 3); console.log(arr);

Результат выполнения кода:

Пример

Давайте с помощью split разобьем строку с числами. Обратите внимание на то, что в результате получится массив строк, а не массив чисел:

let str = ‘12345’; let arr = str.split(»); console.log(arr);

Результат выполнения кода:

Пример . Применение

Давайте перевернем символы строки в обратном порядке. Для этого разобьем строку в массив с помощью split по разделителю » (это разместит каждый символ строки в отдельный элемент массива), перевернем этот массив с помощью reverse и затем сольем перевернутый массив обратно с помощью join :

let str = ‘123456789’; let arr1 = str.split(»); let arr2 = arr1.reverse(); let res = arr2.join(»); console.log(res);

Результат выполнения кода:

Пример . Применение

Упростим решение предыдущей задачи — сольем все команды в цепочку:

let str = ‘123456789’; let res = str.split(»).reverse().join(»); console.log(res);

Результат выполнения кода:

Пример . Применение

Дана строка с цифрами. Найдем сумму цифр из этой строки. Для этого разобьем строку в массив, а затем переберем этот массив и найдем его сумму. Нас ждет подвох: split возвращает строки, поэтому при суммировании преобразуем эти цифры-строки в настоящие числа с помощью Number :

let str = ‘12345’; let arr = str.split(»); let sum = 0; for (let i = 0; i < arr.length; i++) < sum += Number(arr[i]); >console.log(sum);

Результат выполнения кода:

Пример . Применение

Дано число. Давайте запишем каждую цифру этого числа в отдельный элемент массива. Тут есть подвох — split применяется только к строкам, а у нас число. Преобразуем вначале число к строке с помощью String , а затем применим split :

let num = 12345; let str = String(num); let arr = str.split(»); console.log(arr);

Результат выполнения кода:

Смотрите также

  • метод join ,
    который сливает элементы массива в строку
  • метод split ,
    который разбивает строку по регулярке
  • метод reverse ,
    который изменяет порядок элементов в массиве на обратный
  • свойство length ,
    которое позволяет узнать длину строки

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

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

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

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

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

27 октября 2021

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

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

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

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

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

// перебираем строку в цикле for (const symbol of 'test')  console.log(symbol); > // обращение по индексу console.log('test'[1]); // => 'e' 

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

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

Array.prototype.join()

Метод join() объединяет все элементы массива (или массивоподобного объекта) в строку.

Интерактивный пример

Синтаксис

arr.join([separator])

Параметры

separator Необязательный

Определяет строку, разделяющую элементы массива. В случае необходимости тип разделителя приводится к типу Строка. Если он не задан, элементы массива разделяются запятой ‘,‘. Если разделитель — пустая строка, элементы массива ничем не разделяются в возвращаемой строке.

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

Строка, содержащая все элементы массива. Если arr.length == 0 , то будет возвращена пустая строка.

Описание

Преобразует все элементы массива в строки и объединяет их в одну большую строку. Элемент массива с типом undefined или null преобразуется в пустую строку.

Примеры

Соединение массива четырьмя различными способами

В следующем примере создаётся массив a с тремя элементами, затем они четыре раза объединяются в строку: с использованием разделителя по умолчанию, запятой с пробелом, плюса, окружённого пробелами, и пустой строки.

var a = ["Ветер", "Дождь", "Огонь"]; var myVar1 = a.join(); // присвоит 'Ветер,Дождь,Огонь' переменной myVar1 var myVar2 = a.join(", "); // присвоит 'Ветер, Дождь, Огонь' переменной myVar2 var myVar3 = a.join(" + "); // присвоит 'Ветер + Дождь + Огонь' переменной myVar3 var myVar4 = a.join(""); // присвоит 'ВетерДождьОгонь' переменной myVar4 

Соединение элементов массивоподобного объекта

В следующем примере соединяется массивоподобный объект (в данном случае список аргументов функции) с использованием вызова Function.prototype.call для Array.prototype.join .

function f(a, b, c)  var s = Array.prototype.join.call(arguments); console.log(s); // '1,a,true' > f(1, "a", true); 

Спецификации

Specification
ECMAScript Language Specification
# sec-array.prototype.join

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • String.prototype.split()
  • Array.prototype.toString()
  • TypedArray.prototype.join()

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 4 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Как преобразовать строку в массив [дубликат]

Не понял зачем Вам exec здесь нужен. Используете обычный парсинг.

Вариант 1. Через функции строки

text = '[1, 2, 3]' parse = text.strip('[]').replace(' ', '').split(',') # список из строковых значений, потом можно преобразовать в нужный формат 

Вариант 2. Через библиотеку json .

import json text = '[1, 2, 3]' parse = json.loads(text) 

Вариант 3. Парсим через библиотеку re

parse = re.findall('([-+]?\d+)', text) # Если в строке-списке будут только целые числа parse = re.findall('([-+]?\d*\.\d+|\d+)', text) # Если будут еще десятичные 

Что у Вас получился список можно проверить функцией type(parse) , которая выдаст

В первом и третьем варианте на выходе будут списки из строк с числами. Их нужно будет преобразовать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *