Подтвердить что ты не робот

Добавьте разные разделители в javascript toString()..?

Обычно метод JavaScripts toString() возвращает массив в отдельном значении, подобном этому

 var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ];
 var result = myArray .toString();

И он возвращает результат следующим образом: zero,one,two,three,four,five.

Но у меня есть требование представить результат в этом формате zero_one_two_three_four_five (заменив запятую на _).

Я знаю, что мы можем сделать это, используя метод replace после преобразования массива в строку. Есть ли лучшая альтернатива?

Приветствия

Рамеш Вель

4b9b3361

Ответ 1

myArray.join('_') должен делать то, что вам нужно.

Ответ 2

Используйте join, чтобы присоединиться к элементам с определенным разделителем:

myArray.join("_")

Ответ 3

Чтобы не служить никакой другой цели, кроме демонстрации, это можно сделать и ответить на название (но не на дух) заданного вопроса:

<pre>
<script type="text/javascript">
Array.prototype.toStringDefault = Array.prototype.toString;
Array.prototype.toString = function (delim) {
    if ('undefined' === typeof delim) {
        return this.toStringDefault();
    }
    return this.join(delim);
}
var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ];
var result1 = myArray.toString('_');
document.writeln(result1);
var result2 = myArray.toString();
document.writeln(result2);
</script>
</pre>

Я не рекомендую это делать. Это делает ваш код более сложным и зависит от кода, необходимого для расширения функциональности toString() на Array. Использование Array.join() является правильным ответом, я просто хотел показать, что JavaScript может быть изменен для выполнения первоначального запроса.

Ответ 4

Ответ Grant Wagner имеет полезность, когда массив является многомерным.

возьмите массив [['Mary', 'Had'], ['A', 'Little'], ['lamb', 'and']]

Если вы используете метод Array.join('_'), то результат будет выглядеть примерно так:

Мэри, Had_A, Little_lamb и

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

Однако изменение метода Array.toString() приведет к желаемому результату.