Pregunta JavaScript imprime una matriz en una cadena con corchetes y comillas


var fruits = ["Banana", "Orange", "Apple", "Mango"];

Si tuviera la matriz anterior y quisiera enviarla al usuario en el DOM como ["Banana", "Orange", "Apple", "Mango"]

Cuál sería la mejor forma de hacer esto?

Yo he tratado fruits.toString(); que salidas como Banana,Orange,Apple,Mango


7
2018-04-29 23:12


origen


Respuestas:


Use JSON.stringify

JSON.stringify(fruits)

21
2018-04-29 23:14



para hacer eso necesitarás iterar a través de la matriz y construir la cadena desde cero.

algo así:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

// first make sure that each fruit is between quotes
var fruitsResult = fruits.map(function(fruit) {
    return '"' + fruit + '"';
});

// join the fruits with the comma's in between
var result = fruitsResult.join(', ');

// add the final brackets around it
result = '[' + result + ']'

Esta es una solución básica que puede agregar como una función única en alguna parte y pasar la matriz a nuestra puede extender el prototipo de matriz con su propio método para que pueda llamar a fruits.toMyStringFunction (). Depende de usted cómo desea implementar esto.

Nota: que estoy usando el Array.prototype.map () método que es compatible con los navegadores modernos, pero causará algunos problemas con IE8 y menor. Este paso también se puede hacer usando un bucle for, pero esto es más elegante.


4
2018-04-29 23:29



Si por alguna razón no quieres usar JSON, también podrías utilizar join .:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

var fruitsString = '["' + fruits.join('", "') + '"]';

Nota: Para matrices mulitdimensionales ver javascript - Convierte una matriz en una cadena mientras conservas los paréntesis.


0
2018-01-21 11:34