Si tengo una serie de cadenas, puedo usar el .join()
método para obtener una sola cadena, con cada elemento separado por comas, así:
["Joe", "Kevin", "Peter"].join(", ") // => "Joe, Kevin, Peter"
Tengo una serie de objetos y me gustaría realizar una operación similar en un valor contenido en él; entonces de
[
{name: "Joe", age: 22},
{name: "Kevin", age: 24},
{name: "Peter", age: 21}
]
realice el join
método solo en el name
atributo, para lograr el mismo resultado que antes.
Actualmente tengo la siguiente función:
function joinObj(a, attr){
var out = [];
for (var i = 0; i < a.length; i++){
out.push(a[i][attr]);
}
return out.join(", ");
}
No hay nada de malo en ese código, funciona, pero de repente he pasado de una línea de código simple y sucinta a una función muy imperativa. ¿Existe una forma más sucinta, idealmente más funcional de escribir esto?
users.map(x => x.name).join(', ');
.
" ,".join([i.name for i in a])