1
votes

Concaténer une valeur de clé à partir d'un objet en javascript

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


0 commentaires

4 Réponses :


2
votes

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


0 commentaires

1
votes

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 >


0 commentaires

1
votes

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'));


0 commentaires

0
votes

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


0 commentaires