0
votes

Supprimer la touche d'objet et la valeur à l'intérieur du tableau d'objets

Mon code =

Ceci est mon exemple de données. xxx

et je reçois cela comme le résultat:

 Entrez la description de l'image Ici

Je devrais simplement supprimer le dept_short_name et dept_long_name à partir de l'objet de groupe et du groupe GROUP_ID Être reste, et le reste des données des chansons devrait être restée la même.

Cela devrait être le résultat: xxx


0 commentaires

4 Réponses :


4
votes

Vous devez recréer un objet dans vos deux cartes.

p>

const songs = [{"title":"Just Once","asset_id":"1f7e0fd8-db21-4c28-b9e1-eb0295af198c","sort":1,"performers":[{"last_name":"John","first_name":"Doe","group":{"group_id":"1e5f73fa-ffe8-4c70-a83b-84e7bf985b25","dept_short_name":"PAO","dept_long_name":"Public Affairs Office"},"email":"john@doe.com"}]}]

const updated = songs.map(({
  performers,
  ...song
}) => ({ ...song, // recreate song object
  performers: performers.map(({
    group: {
      group_id
    },
    ...performer
  }) => ({ ...performer, // recreate performer object
    group_id
  }))
}))

console.log(updated)


4 commentaires

Fonctionne comme la magie! Joli. J'ai vraiment besoin de boucler et d'utiliser la propagation pour rester ces données. Merci, nouvelles connaissances pour aujourd'hui.


@bossajie content de pouvoir aider. BTW Vous voudrez peut-être envisager d'aplanir votre état Redux pour éviter les mises à jour de nidification. Ou il y a une bibliothèque Immer qui rend le code de mise à jour à regarder plus impératif.


J'utilise cela avant d'envoyer à l'API, car l'API accepte le groupe_id uniquement, pas d'objet, et dans mon extraction à l'aide d'un composant 3ème partie, j'ai besoin d'un objet de groupe pour l'afficher, c'est pourquoi je le fais. Est-ce une bonne pratique?


Je crois que c'est, à moins que vous ayez un moyen de changer l'API ou le frontend pour vous associer :)



-1
votes

Utiliser le mot-clé Supprimer: Supprimer Performerce ["Keyname"] Il retournera la valeur booléenne


1 commentaires

En supposant que cette question a redux l'état de mutation des balises n'est pas une option.



0
votes
  {
    "title": "Just Once",
    "asset_id": "1f7e0fd8-db21-4c28-b9e1-eb0295af198c",
    "sort": 1,
    "performers": [
      {
        "last_name": "John",
        "first_name": "Doe",
        "group": {
          "group_id": "1e5f73fa-ffe8-4c70-a83b-84e7bf985b25",
          "dept_short_name": "PAO",
          "dept_long_name": "Public Affairs Office"
        },
        "email": "john@doe.com"
      }
    ]
  }
]

window.addEventListener('load', function() {
 delete songs[0].performers[0].group.dept_short_name;
 delete songs[0].performers[0].group.dept_long_name;
 console.log(JSON.stringify(songs))
});

This may help.

0 commentaires

0
votes
const songs = [{
  title: "Just Once",
  asset_id: "1f7e0fd8-db21-4c28-b9e1-eb0295af198c",
  sort: 1,
  performers: [{
    last_name: "John",
    first_name: "Doe",
    group: {
      group_id: "1e5f73fa-ffe8-4c70-a83b-84e7bf985b25",
      dept_short_name: "PAO",
      dept_long_name: "Public Affairs Office"
    },
    email: "john@doe.com"
  }]
}];
songs.map(({ performers }, ind) => {
 performers.map(({ group }, ind) => {
  performers[ind].group_id = group.group_id;
 });

 delete performers[ind].group;
});

console.log(songs);

0 commentaires