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