-5
votes

Comment filtrer les valeurs JSON à un tableau

J'ai un fichier JSON comme celui-ci xxx

à partir de ceci ci-dessus, je veux filtrer toutes les valeurs par son nom de clé et le pousser à un tableau. La sortie attendue est la suivante: xxx

Comment faire cela se produit?

J'ai essayé comme ça xxx

Cela ne fonctionne pas comme prévu.


2 commentaires

@Meeravali Qu'avez-vous essayé?


En outre, votre sortie souhaitée est ambiguë. Vous dites que vous voulez un tableau, mais cela ressemble à un objet (en quelque sorte).


4 Réponses :


1
votes

Vous pouvez réduire le tableau dans un objet:

p>

let myfile = [
    { name: 'John', eid: 664, socialid: 399, testid: 799 },
    { name: 'Sam', testid: 249, eid: 64, socialid: 80 },
    { name: 'Albert', eid: 422, testid: 20, socialid: 10 },
    { name: 'Michel', eid: 497, testid: 15, socialid: 60 },
];

console.log(
    myfile.reduce(
        (result, item) =>
            Object.entries(item).reduce((result, [key, value]) => {
                result[key] = result[key] || [];
                result[key].push(value);
                return result;
            }, result),
        {},
    ),
);


0 commentaires

1
votes

Vous pouvez utiliser matry # réduire code> pour accumuler la valeur correspondant à chaque touche d'un objet.

p>

let myfile = [{"name":"John","eid":664,"socialid":399,"testid":799}, {"name":"Sam","testid":249,"eid":64,"socialid":80}, {"name":"Albert","eid":422,"testid":20,"socialid":10}, {"name":"Michel","eid":497,"testid":15,"socialid":60}],
    result = myfile.reduce((r,o) => {
      Object.entries(o).forEach(([key,value]) => {
        r[key] = r[key] || [];
        r[key].push(value);
      });
      return r;
    },{});
console.log(result);


0 commentaires

0
votes

Comme ça?

p>

let json=[
    {"name":"John","eid":664,"socialid":399,"testid":799},
    {"name":"Sam","testid":249,"eid":64,"socialid":80},
    {"name":"Albert","eid":422,"testid":20,"socialid":10},
    {"name":"Michel","eid":497,"testid":15,"socialid":60}
]
let output={
  publication:[],
  eid:[],
  testid:[],
  socialid:[]
}
for(let i in json){
    output.publication.push(json[i].name)
    output.eid.push(json[i].eid)
    output.testid.push(json[i].testid)
    output.socialid.push(json[i].socialid)
}
console.log(output)


1 commentaires

Pourquoi pas pour (laissez-moi dans json) {?



1
votes

vous problème principal est que vous essayez d'accéder à publication code> qui n'existe pas dans les objets internes.

Pour un renommage en ligne, vous pouvez prendre un objet avec le nom donné comme clé et Nouveau nom comme valeur et prenez la clé réelle comme valeur par défaut. Ensuite, créez un nouveau tableau, sinon existe et appuyez sur la valeur de la valeur. P>

Enfin, vous obtenez un objet avec des touches recherchées avec toutes les valeurs de la valeur donnée. P>

P> P >

.as-console-wrapper { max-height: 100% !important; top: 0; }


0 commentaires