¿Una forma sencilla de convertir una matriz de JavaScript en una lista separada por comas?
Tengo una matriz unidimensional de cadenas en JavaScript que me gustaría convertir en una lista separada por comas. ¿Existe una forma sencilla en JavaScript (o jQuery) común y corriente de convertir eso en una lista separada por comas? (Sé cómo iterar a través de la matriz y construir la cadena yo mismo mediante concatenación si esa es la única manera).
El método Array.prototype.join() :
var arr = ["Zero", "One", "Two"];
document.write(arr.join(", "));
En realidad, la toString()
implementación realiza una unión con comas de forma predeterminada:
var arr = [ 42, 55 ];
var str1 = arr.toString(); // Gives you "42,55"
var str2 = String(arr); // Ditto
No sé si esto lo exige la especificación JS, pero esto es lo quemayoríaCasi todos los navegadores parecen estar haciéndolo.
Matriz sencilla
let simpleArray = [1,2,3,4]
let commaSeperated = simpleArray.join(",");
console.log(commaSeperated);
Matriz de objetos con atributos particulares separados por comas.
let arrayOfObjects = [
{
id : 1,
name : "Name 1",
address : "Address 1"
},
{
id : 2,
name : "Name 2",
address : "Address 2"
},
{
id : 3,
name : "Name 3",
address : "Address 3"
}]
let names = arrayOfObjects.map(x => x.name).join(", ");
console.log(names);
Resultado
Name 1, Name 2, Name 3
O (más eficientemente):
var arr = nueva matriz (3); arr[0] = "Cero"; arr[1] = "Uno"; arr[2] = "Dos"; documento.write(arr); // igual que document.write(arr.toString()) en este contexto
El método toString de una matriz, cuando se llama, devuelve exactamente lo que necesita: una lista separada por comas.
Si necesita utilizar " y " en lugar de ", " entre los dos últimos elementos, puede hacer esto:
function arrayToList(array){
return array
.join(", ")
.replace(/, ((?:.(?!, ))+)$/, ' and $1');
}