Ajouter des délimiteurs différents dans javascript toString () ..?

Normalement, la toString() de JavaScript renvoie le tableau dans une valeur séparée par des virgules comme celle-ci

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

Et il renvoie la sortie comme celle-ci zero,one,two,three,four,five .

Mais j'ai l'obligation 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. Existe-t-il une meilleure alternative disponible?

À votre santé

Ramesh Vel

MyArray.join ('_') devrait faire ce dont vous avez besoin.

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

 myArray.join("_") 

Pour ne servir aucun autre but que de démontrer, 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 de le faire. Cela rend votre code plus compliqué et dépend du code nécessaire pour étendre la fonctionnalité de toString() sur Array . L'utilisation de Array.join() est la bonne réponse, je voulais juste montrer que JavaScript peut être modifié pour faire ce qui a été demandé à l'origine.

La réponse de Grant Wagner a une utilité lorsqu'un tableau est multidimensionnel.

Prenez le tableau [['Mary', 'Had'], ['A', 'Little'], ['agneau', 'et']]

Si vous utilisez la méthode Array.join ('_'), le résultat sera quelque chose comme:

Mary, Had_A, Little_lamb, et

Car la méthode de jointure utilise la méthode .toString () pour assembler chaque élément dans le tableau principal et ce par défaut utilise le séparateur de virgule.

La modification de la méthode Array.toString () produirait néanmoins le résultat souhaité.