2009-09-09 17 views
18

normalmente el método de JavaScript toString() devuelve la matriz en un valor de coma separados como estoAgregue diferentes delimitadores en javascript toString() ..?

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

Y devuelve el resultado como éste zero,one,two,three,four,five.

Pero tienen un requisito para representar el resultado en este formato zero_one_two_three_four_five (en sustitución de la coma con _).

Sé que podemos hacer esto utilizando el método de reemplazo después de convertir la matriz en cadena. ¿Hay una mejor alternativa disponible?

Saludos

Ramesh Vel

Respuesta

35

myArray.join ('_') deben hacer lo que necesita.

+0

gracias edeverett ... debería leer los principios básicos de javascript primero ... :( – RameshVel

+1

No te preocupes, para eso es que SO está aquí. Lo bueno es que la respuesta no tardó en escribirse :-) – edeverett

5

Uso join a unirse a los elementos con un separador específico:

myArray.join("_") 
3

servir para ningún otro propósito que demuestran que se puede hacer y contestar el título (pero no el espíritu) de la pregunta preguntó:

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

No recomiendo hacer esto. Hace que el código sea más complicado y dependa del código necesario para extender la funcionalidad de toString() en Array. Usar Array.join() es la respuesta correcta, solo quería mostrar que JavaScript se puede modificar para hacer lo que se solicitó originalmente.

1

La respuesta de Grant Wagner tiene utilidad cuando una matriz es multidimensional.

toman la matriz [[ 'María', 'había'], [ 'A', 'Little'], [ 'cordero', 'y']]

Si utiliza el Array.join ('_') método entonces el resultado será algo como:

María, Had_A, Little_lamb, y

como la unión método utiliza el método .toString() para montar cada elemento de la matriz principal y el valor predeterminado a usar el separador de coma.

Sin embargo, cambiar el método Array.toString() produciría el resultado deseado.

Cuestiones relacionadas