J'ai un objet javascript:
[
{
"id":"123",
"name":"abc",
"email":"abc@gmail.com"
},
{
"id":"465",
"name":"pqr",
"email":"pqr@gmail.com"
}
]
Je souhaite concaténer tous les noms en une seule chaîne séparée par une virgule. J'ai trouvé une solution de https://stackoverflow.com/a/28474201 qui concatène toutes les clés mais je veux concaténer seulement un clé spécifique
4 Réponses :
Vous pouvez mapper les noms et rejoindre le tableau.
var data = [{ id: '123', name: 'abc', email: 'abc@gmail.com' }, { id: '465', name: 'pqr', email: 'pqr@gmail.com' }],
names = data.map(o => o.name).join(',');
console.log(names);
Peut-être, si la clé est 'nom', une des solutions possibles est
function makeList(key) {
const data = [ { 'id' : '123', 'name' : 'abc', 'email' : 'abc@gmail.com' }, { 'id' : '465', 'name' : 'pqr', 'email' : 'pqr@gmail.com' } ];
return data.map((el) => {
return el[key];
}).join(',');
}
Si vous voulez créer dynamiquement la clé
const data = [ { 'id' : '123', 'name' : 'abc', 'email' : 'abc@gmail.com' }, { 'id' : '465', 'name' : 'pqr', 'email' : 'pqr@gmail.com' } ];
const ret = data.map((el) => {
return el.name;
}).join(',');
p >
Solution générique, vous passez n'importe quel tableau et vous passez la clé de l'objet que vous souhaitez récupérer sous forme de chaîne séparée par des virgules.
var givenArray = [ { 'id' : '123', 'name' : 'abc', 'email' : 'abc@gmail.com' }, { 'id' : '465', 'name' : 'pqr', 'email' : 'pqr@gmail.com' } ];
function concatKey(data,key){
var result = data.map(obj => obj[key]).join(",");
return result;
};
console.log(concatKey(givenArray,'name'));
Je veux recommander Array.property.reduce () , voici le code:
function mergeKey(list = [], key) {
return list.reduce((acc, cur) => {
acc += (acc ? ',' : '') + cur[key]
return acc;
}, '')
}
//test case
const data = [
{ 'id' : '123', 'name' : 'abc', 'email' : 'abc@gmail.com' },
{ 'id' : '465', 'name' : 'pqr', 'email' : 'pqr@gmail.com' }
];
console.log(mergeKey(data, 'name'))