Перейти к содержимому

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

  • автор:

Всё только о JavaScript

Для объединения всех элементов массива в одну строку используется метод массива join , принимающий единственным аргументом строку, которой необходимо разделить элементы.

var a = [1, 2, 3, 4]; alert(a.join('-')); // 1-2-3-4 

Метод join объединяет элементы для каждого индекса от 0 до length — 1 , при этом значения undefined и null преобразуются в пустую строку, остальные элементы приводятся к строке.

var a = [1, , null, undefined, 2]; alert(a.join('-')); // 1----2 

В спецификации языка указано

If no separator is provided, a single comma is used as the separator.

Т.е. если сепаратор не был передан, то в качестве него нужно использовать запятую. Данное предложение, однако, можно трактовать двояко: сепаратор не передан вообще или в качестве сепаратора передан undefined . Впрочем чуть ниже в спецификации указана чёткая инструкция.

If separator is undefined, let separator be the single-character string «,».

Т.е. если сепаратор равен undefined , то используется запятая. Именно такое поведение реализуют все браузеры, кроме Internet Explorer. IE подставляет запятую, только если join был вызван без аргументов.

var a = [1, 2, 3, 4]; alert(a.join()); // 1,2,3,4 во всех браузерах alert(a.join(undefined)); // 1undefined2undefined3undefined4 в IE, 1,2,3,4 в остальных браузерах 

Метод join можно использовать также для элегантной реализации повторения строки, т.е. из строки ‘ab’ , например, получить строку ‘abababab’ . Действительно, пустые элементы массива преобразуются в пустые строки, но при этом разделяются сепаратором. Следовательно, чтобы повторить строку n раз, нужно взять пустой массив, у которого length равен n + 1 , и вызвать у него метод join с аргументом, равным размножаемой строке.

/** * Повторяет исходную строку n раз. * @param n Число повторений строки * @return Размноженная строка. */ String.prototype.times = function(n) < return new Array(n + 1).join(this); >; alert('01'.times(4)); // 01010101 

Массивы, как и любой другой объект в JavaScript, имеют встроенный метод toString , вызываемый при неявном преобразовании в строку. Этот метод у них аналогичен вызову метода join без аргументов, т.е. элементы разделяются запятой.

var str = 'ab', a = [1, 2, 3, 4]; alert(str + a); // ab1,2,3,4 

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

var a = [1, 2, ['a', 'b', 'c'], 3, 4]; alert(a); // 1,2,a,b,c,3,4 Array.prototype.toString = function() < return '[' + this.join(', ') + ']'; >; alert(a); // [1, 2, [a, b, c], 3, 4] 

Создание массива из строки

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

var str = '1-2-3-4'; alert(str.split('-')); // 1,2,3,4 

Обратите внимание, что если вызвать split у пустой строки, то мы получим не пустой массив, а массив с одним элементом, равным пустой строке.

var a = ''.split(','); alert([a.length, a[0] == '']); // 1,true 

Строку в массив (JavaScript)

Для преобразования строки в массив, в яваскрипте есть встроенная функция split() , применима она только к переменной типа строка.

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

stringObject.split(string separator[, int howmany])

string separator — подстрока-разделитель, которая будет разбивать строку на элементы массива; int howmany — необязательный параметр, означает сколько элементов нужно поместить в массив, остаток строки отбрасывается.

Пример

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

// строка для преобразования var str = ‘1 2 3 4 5 6 7 8 9 10’; // преобразуем в массив var arr = str.split(‘ ‘); // Переменная arr будет содержать элементы [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // пример 2 var arr2 = str.split(‘ ‘, 3); // Переменная arr2 будет содержать элементы [1, 2, 3]

✖ ❤ Мне помогла статья 1 оценка
47749 просмотров 2 комментария Артём Фёдоров 02 ноября 2011

Категории

Читайте также

  • Массив в строку (JavaScript)
  • Ассоциативный массив в JavaScript
  • Массив уникальных значений (JavaScript)
  • Сортировать числовой массив (JavaScript)
  • Массив в строку через разделитель (PHP)
  • Заполнить массив случайными числами (JavaScript)
  • Умножить массив на число (PHP)
  • Случайный элемент массива (JavaScript)
  • Количество элементов ассоциативного массива (JavaScript)
  • Преобразовать массив в объект (PHP)
  • Цикл в обратном порядке (PHP)
  • Как удалить элемент ассоциативного массива (JavaScript)

Комментарии

Женя Жданов 03 мая 2020 в 11:17

не понятно зачем давать не верные примеры!

Переменная arr будет содержать МАССИВ СТРОК. [«1», «2», «3», «4», «5», «6», «7», «8», «9», «10»]

Артём Фёдоров 18 мая 2020 в 15:24

Женя Жданов, да, все верно! Надо исправить будет. Спасибо.

Написать комментарий
© Экспэнч 2010-2024
При полном или частичном копировании статей сайта указывайте пожалуйста ссылку на источник
Хотите узнать больше информации, пишите на: artem@expange.ru

Вход на сайт

Введите данные указанные при регистрации:

Социальные сети

Вы можете быстро войти через социальные сети:

Преобразовать строку в массив, создать набор на основе массива, найти сколько раз каждый символ встречается в исходном массиве

При нажатии button выполняете функцию. Функция должна преобразовать строку в массив, причем каждая буква — отдельный элемент массива. Потом создать набор на основе массива. Затем, перебирая набор поэлементам, найти сколько раз каждый символ встречается в исходном массиве. Результат — в виде объекта типа < символ : количество, символ : количество >вывести в консоль и возвратить. пример результата для строки ‘Hello ho’ < "H" : 1, 'e' : 1, 'l' : 2, "o" : 2, " ": 1>

let str13 = 'The name conjures up visions of plum pudding and Christmas punch quaint coaching inns and cozy firesides but also of orphaned and starving children'; const f13 = () => < let array = Array.from(str13); let set = new Set(array); for (let arr of set) < >> document.querySelector('.b-13').onclick = () =>
 

Task 13.

Метод 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 ,
    которое позволяет узнать длину строки

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

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