0
votes

Mettre à jour le tableau d'objets dans localStorage sans quitter un null

Donc, j'ai 3 champs de saisie de texte, l'entrée que je stocke dans le stockage local en tant que réseau d'objets. On dirait que: xxx pré>

Je dois pouvoir supprimer n'importe quelle entrée que je choisis et mettre à jour le stockage local. P>

Après JSON.PARSE, je reçois un objet JavaScript, pas déployer. Si j'utilise supprimer [x], il laisse NULL - P>

[null, {name: " Name2", description: "Description2", comment: "Comment2"},…]
0: null
1: {name: " Name2", description: "Description2", comment: "Comment2"}
2: {name: " Name3", description: "Description3", comment: "Comment3"} 


1 commentaires

Comment le supprimez-vous?


5 Réponses :



0
votes

Au lieu de mutater le tableau, filtrez-le: Exemple:

const newArr = [...].filter(o => o.name != <name you want to remove>)


0 commentaires

0
votes

Vous avez plusieurs options pour faire cela.

Option 1: . Splice () P>

La méthode de l'épissure () modifie le contenu d'un tableau en supprimant ou en remplaçant les éléments existants et / ou en ajoutant de nouveaux éléments en place. P> blockQuote>

p>

const data = [{name: "Name1", description: "Description1", comment: "Comment1"}, {name: " Name2", description: "Description2", comment: "Comment2"}, {name: " Name3", description: "Description3", comment: "Comment3"}];


console.log(data.filter(item => item && item.name !== 'Name1'))


0 commentaires

0
votes

Si vous souhaitez supprimer des éléments d'un tableau, vous utilisez une méthode de tableau xxx

si vous souhaitez supprimer l'élément de l'objet xxx

alors Newarray est sans valeur null


0 commentaires

0
votes

Assurez-vous toujours d'obtenir les valeurs, la matrice mise à jour et la définir à nouveau. J'espère que cela aide.

const data = [
  { name: " Name1", description: "Description1", comment: "Comment1" },
  { name: " Name2", description: "Description2", comment: "Comment2" },
  { name: " Name3", description: "Description3", comment: "Comment3" }
];

const setLS = arr => localStorage.setItem("my_data", JSON.stringify(arr));

const getLS = () => JSON.parse(localStorage.getItem("my_data"));

const removeItemLS = obj => {
  const current = getLS();
  setLS(current.filter(item => item.name !== obj.name));
};

setLS(data);
getLS();
// (3) [{…}, {…}, {…}]
removeItemLS({ name: " Name2" });
getLS();
// (2) [{…},{…}]


0 commentaires