как массив перевести в строку js
Для того, чтобы перевести массив в строку в JavaScript, можно воспользоваться методом join() , который объединяет все элементы массива в одну строку с помощью указанного разделителя.
Например, если у нас есть массив со словами, разделенными пробелами, можно вызвать метод join() на этом массиве и передать ему пробел в качестве разделителя:
const words = [ 'Лучше', 'один', 'раз', 'увидеть', 'чем', 'сто', 'раз', 'услышать', ]; const phrase = words.join(' '); console.log(phrase); // "Лучше один раз увидеть чем сто раз услышать"
В данном примере метод join() объединяет все элементы массива words в одну строку с помощью пробела в качестве разделителя.
Как из массив перевести в строку без запятых
При этом в качестве параметра join() передается строка, которая будет вставляться между символами исходного массива.
Отслеживать
ответ дан 31 янв 2019 в 19:45
1,182 9 9 серебряных знаков 22 22 бронзовых знака
var text = ['H', 'e', 'l', 'l', 'o', '!']; var result = text.reduce((res, item) => res + item, ''); console.log(result);
Отслеживать
ответ дан 31 янв 2019 в 19:49
user176262 user176262
А чем этот вариант отличается от решения, предложенного @wcobalt ‘ом? Какие особенности, отличия, как работает?))
31 янв 2019 в 20:54
@Pon4iPay Ключевые слова для поиска: javascript, array, reduce.
– user176262
31 янв 2019 в 20:57
- javascript
- массивы
- строки
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Преобразование массива в строку в JavaScript
Для обработки данных и выполнения с ними манипуляций может возникнуть потребность преобразования массива в строку. Например, когда необходимо отправить данные в строчном типе, из массива делается строка и только тогда отправляется. Либо нам просто нужно объединить все элементы массива единой строкой.
Рассмотрим различные подходы для преобразования массива в строку.
toString()
Метод toString() помогает преобразовывать различные типы данных в строку. Он выводит строку, содержащую все элементы массива, разделенные запятыми.
['a', 'b', 'c'].toString(); // 'a,b,c' ['text', 123, true].toString() // 'text,123,true'
String()
Функция осуществляет явное преобразование в строку.
String(['a', 'b', 'c']); // 'a,b,c' String(['text', 123, true]) // 'text,123,true'
concat()
В JavaScript метод concat() в основном используется для объединения нескольких строк. Однако его также можно использовать для преобразования указанного массива в строку. Для этого нужно соединить элементы массива с пустой строкой.
''.concat(['a', 'b', 'c']); // 'a,b,c'
Явное приведение
Подобно методу concat() массив можно преобразовать в строку путем обычного прибавления к нему пустой строки или пустого массива.
['a', 'b', 'c'] + []; // 'a,b,c' ['text', 123, true] + ''; // 'text,123,true'
join()
Метод join() предлагает функциональность преобразования массива в строку. Элементы массива становятся строкой, однако теперь способ их объединения можно указать в качестве аргумента метода.
['a', 'b', 'c'].join(); // 'a,b,c' (по-умолчанию разделитель ',') ['и', 'в', 'а', 'н'].join(''); // 'иван' ['text', 123, true].join('-'); // 'text-123-true'
JSON.stringify()
Метод преобразует массив в строку формата JSON, соблюдая определенные правила синтаксиса, чтобы потом ее можно было обратно преобразовать в исходное состояние или распарсить.
JSON.stringify(['a', 'b', 'c']); // '["a","b","c"]' JSON.stringify([145, false, ]); // '[145,false,]'
forEach()
Если массив необходимо сохранить, но при этом получить строку из него, используем перебирающий метод forEach() . На этапе каждой итерации обновляем созданную строку.
let array = ['a', 'b', 'c']; let string = ''; array.forEach(function(item, index) < string += item; if (index != (array.length - 1)) < string += ','; >; >); console.log(string); // => 'a,b,c'
Всё только о 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
