2009-09-09 5 views
18

normalement méthode toString() de JavaScript retourne le tableau dans une valeur de virgule comme seperated cetteAjouter des délimiteurs différents dans javascript toString() ..?

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

Et il retourne la sortie comme celui-ci zero,one,two,three,four,five.

Mais j'ai une exigence de représenter le résultat dans ce format zero_one_two_three_four_five (en remplaçant la virgule par _).

Je sais que nous pouvons le faire en utilisant la méthode de remplacement après avoir converti le tableau en chaîne. Y a-t-il une meilleure alternative disponible?

Vive

Ramesh Vel

Répondre

35

myArray.join ('_') devraient faire ce que vous avez besoin.

+0

merci edeverett .. je devrais lire les bases de javascript d'abord ... :( – RameshVel

+1

Pas de soucis, c'est ce que le SO est là pour.Bonne chose est la réponse n'a pas mis longtemps à écrire :-) – edeverett

5

Utilisez join pour rejoindre les éléments avec un séparateur spécifique:

myArray.join("_") 
3

Pour servir d'autre but que de démontrer qu'il peut être fait et répondre au titre (mais pas l'esprit) de la question posée:

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

Je ne recommande pas cela. Il rend votre code plus compliqué et dépend du code nécessaire pour étendre les fonctionnalités de toString() sur Array. En utilisant Array.join() est la bonne réponse, je voulais juste montrer que JavaScript peut être modifié pour faire ce qui était initialement demandé.

1

La réponse de Grant Wagner est utile lorsqu'un tableau est multidimensionnel.

prendre le tableau [[ 'Mary', 'avait'], [ 'A', 'Little'], [ 'agneau', 'et']]

Si vous utilisez le Array.join (« _ ») méthode alors le résultat sera quelque chose comme:

Marie, Had_A, Little_lamb et

comme la jointure méthode utilise la méthode .toString() pour assembler chaque élément dans le tableau principal et la valeur par défaut à l'aide du séparateur virgule. La modification de la méthode Array.toString() produirait cependant le résultat souhaité.

Questions connexes