Как вывести массив без запятых js
Перейти к содержимому

Как вывести массив без запятых js

  • автор:

Как из массив перевести в строку без запятых

Как сделать, чтобы при переводе в строку не было этих запятых?

Отслеживать

user176262

задан 31 янв 2019 в 19:42

174 4 4 серебряных знака 16 16 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

var text = ['H', 'e', 'l', 'l', 'o', '!']; console.log(text.join(''));

При этом в качестве параметра join() передается строка, которая будет вставляться между символами исходного массива.

Как вернуть массив без запятых?

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

function docs(arg) < arg = arg.split(',') for(i=0; i'>`) > > docs(data[findId].documents) let +data[findId].id+'
', name = '
Название:
'+data[findId].name+'
', name2 = '
Сокращенное название:
'+data[findId].name2+'
', name3 = '
Полное название:
'+data[findId].name3+'
', email = '
E-mail:
'+data[findId].email+'
', region = '
Регион:
'+data[findId].region+'
', city = '
Город:
'+data[findId].city+'
', street = '
Поселок,улица,дом:
'+data[findId].street+'
', face = '
Юридический адрес:
'+data[findId].face+'
', physic = '
Фактический адрес:
'+data[findId].physic+'
', index = '
Почтовый адрес:
'+data[findId].indexx+'
', phone = '
Телефон:
'+data[findId].phone+'
', orgn = '
ОРГН:
'+data[findId].orgn+'
', documents = '
Документы:
', creator = '
Роли:
'+role.name+'
', bank = '
Банк:
'+data[findId].bank+'
', bik = '
БИК:
'+data[findId].bik+'
', rs = '
Р/С:
'+data[findId].rs+'
', ks = '
К/С:
'+data[findId].ks+'
', button = '' $('.control-company *').detach() $('.control-company').append(id+name+name2+name3+email+region+city+street+face+physic+index+phone+orgn+documents+creator+bank+bik+rs+ks+button)

Владимир, ну тут без подробного анализа не обойтись. Попрубуйте пошагово дебажить код.

Всё только о 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 

Array.prototype.toString()

Метод toString() возвращает строковое представление указанного массива и его элементов.

Синтаксис

arr.toString()

Параметры

Описание

Объект Array переопределяет метод toString объекта Object . Для объектов класса Array , метод toString соединяет массив и возвращает одну строку, содержащую каждый элемент массива, разделённый запятыми. Например, следующий код создаёт массив и использует метод toString для преобразования массива в строку.

var monthNames = ["Янв", "Фев", "Мар", "Апр"]; var myVar = monthNames.toString(); // присваивает 'Янв,Фев,Мар,Апр' переменной myVar. 

JavaScript вызывает метод toString автоматически, когда массив представляется текстовым значением или когда массив находится в контексте конкатенации строк.

Семантика ECMAScript 5

Начиная с JavaScript 1.8.5 (Firefox 4), и в соответствии с семантикой ECMAScript 5-го издания, метод toString() является обобщённым и может использоваться с любым объектом. В случае с массивами, если он имеет метод join() , он будет вызван и результат его работы будет возвращён. В противном случае будет вызван метод Object.prototype.toString() , и будет возвращён результат его работы.

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

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

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

BCD tables only load in the browser

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

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 20 янв. 2024 г. by MDN contributors.

Your blueprint for a better internet.

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

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