2009-09-09 12 views
18

normalnie toString() metodą Javascript za zwraca tablicę w wartości oddzielone przecinkami jak tenDodawanie różnych ograniczników w javascript toString() ..?

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

I zwraca wyjście jak ten zero,one,two,three,four,five.

Ale mam obowiązek reprezentować wynik w tym formacie zero_one_two_three_four_five (zastępując przecinek przez _).

Wiem, że możemy to zrobić, zastępując metodę po konwersji tablicy na łańcuch. Czy jest dostępna lepsza alternatywa?

Cheers

Ramesh Vel

Odpowiedz

35

myArray.join ('_') powinien robić to, co trzeba.

+0

dzięki edeverett .. powinienem najpierw przeczytać podstawy javascript ... :( – RameshVel

+1

Nie martw się, po to jest SO. Dobrze, że odpowiedzi nie trzeba było długo pisać :-) – edeverett

5

Zastosowanie join dołączyć elementy z określonym separatorem:

myArray.join("_") 
3

Służyć ma innego celu niż wykazać można to zrobić i odebrać tytuł (ale nie ducha) z pytaniem zapytał:

<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> 

Nie polecam tego. To sprawia, że ​​kod jest bardziej skomplikowany i zależy od kodu niezbędnego do rozszerzenia funkcjonalności toString() na Array. Użycie prawidłowej odpowiedzi to: Array.join(), chciałem tylko pokazać, że JavaScript można zmodyfikować, aby wykonać to, co pierwotnie zadano.

1

Odpowiedź Granta Wagnera ma zastosowanie, gdy tablica jest wielowymiarowa.

wziąć tablicę [[ 'Mary', 'miał'], [ 'a', 'Little'] [ 'baranek', 'i']]

Jeśli używasz Array.join (metoda „_”), to wynikiem będzie podobnie jak:

Mary, Had_A, Little_lamb i

jako sprzężenie metoda wykorzystuje metodę .ToString() do montażu każdego elementu w głównej tablicy i wartością domyślną do korzystania z separatora przecinka.

Zmiana metody Array.toString() przyniosłaby pożądany rezultat.

Powiązane problemy