Supprimer simplement un objet d'un array JS.

Supprimer simplement un objet d'un array JS. - Javascript/Node.js - Programmation

Marsh Posté le 28-03-2021 à 16:19:41    

Coucou, je suis dev PHP Senior, pour des besoins pro, j'essaye de me perfectionner en JS (en React/Next/Typescript plus exactement, mais c'est un détail à mon avis).
 
Ma question :
J'ai un tableau d'object simple :

Code :
  1. const superTab = [
  2. {id: 1, name: 'toto'},
  3. {id: 2, name: 'titi'},
  4. {id: 3, name: 'tutu'},
  5. ];
  6. const objToDelete = {
  7. id: 2, name: 'titi',
  8. };
  9. // Ici mon soucis
  10. console.log(superTab);


C'est de la syntaxe tapé vite fait, tapez pas si j'ai oublié une virgule quelque part.
 
Je souhaiterais donc qu'à l'étape "Ici mon soucis" virer l'objToDelete de mon tableau d'object pour que le console.log me sorte un array composé juste des object 1 et 3.
Je peux potentiellement y arriver avec un .map (encore que vu que mon tableau n'a pas de clé...).
 
Si quelqu'un a une soluce pour ça, merci d'avance.


---------------
Ceci est ma signature :)
Reply

Marsh Posté le 28-03-2021 à 16:19:41   

Reply

Marsh Posté le 28-03-2021 à 16:57:33    

J'ai fini par trouver une solution simple à mettre en oeuvre et qui fonctionne bien dans mon cas.

 
Code :
  1. let removeIndex = superTab.map(function(item) { return item.id; }).indexOf(2);
  2. superTab.splice(removeIndex, 1);
 

Si quelqu'un a mieux, je reste ouvert à toute solution plus propre/adaptée.


Message édité par CedricMD le 28-03-2021 à 17:09:34

---------------
Ceci est ma signature :)
Reply

Marsh Posté le 29-03-2021 à 12:51:54    

Methode Filter cher ami :  
 

Code :
  1. let nouveauTableau = tableau.filter(function(item) { return item.id === objToDelete.id;});


 
Là c'est dans le cas où tu veux un nouveau tableau filtré.
 
Après ta méthode est une approche qui est utile dans ton cas mais tu as toujours le même tableau.
 

Reply

Marsh Posté le 29-03-2021 à 20:59:35    

Le map me semble inopportun.

Code :
  1. superTab.splice(superTab.findIndex(myEl => myEl.name === objToDelete.name), 1);
 

Ou alors :

Code :
  1. superTab.splice(+objToDelete.id - 1, 1);


Message édité par MaybeEijOrNot le 29-03-2021 à 21:01:21

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed