Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    View Cyril Durand's profile on LinkedIn

    hit counters

[JavaScript] Le mot clé delete - Supprimer une propriété d'un objet

Un des mots clés les moins connus de JavaScript est sans doute le mot clé delete (msdn | mozdev). Ce mot clé permet de supprimer une propriété (expando attribute) d'un objet JavaScript.

Par exemple, nous avons un objet o qui contient 3 propriétés a, b, c. Nous pouvons boucler sur le nom des propriétés grâce à l'instruction for in :

var o = {a : 1, b : 2, c : 3}; for(var s in o) Sys.Debug.trace(s); // return a, b, c

Pour supprimer un élément de cet objet, le définir à null ou undefined ne nous sera d'aucune utilité.

var o = {a : 1, b : 2, c : 3}; o.b = null; // ou o.b = undefined; for(var s in o) Sys.Debug.trace(s); // return a, b, c

Si l'on veut supprimer la propriété il faut utiliser le mot clé delete :

var o = {a : 1, b : 2, c : 3}; delete o.b; for(var s in o) Sys.Debug.trace(s); // return a, c

A quoi sert cet astuce ? je me sert très souvent d'un objet comme un dictionnaire (o[key] = value), pour supprimer un élément de ce dictionnaire il faut alors avoir recours à cette astuce.

Le mot clé delete fonctionne également avec les tableaux. Mais attention l'ordre des éléments n'est pas décalé et la taille du tableau n'est pas modifié ! L'instruction delete est alors équivalente à assigner undefined à la position voulue :

var l = ['a', 'b', 'c']; Sys.Debug.trace(l[1]); // => b delete l[1]; // equivalent a l[1] = undefined; Sys.Debug.trace(typeof(l[1])); // => undefined Sys.Debug.trace(l.length); // => 3

Pour ces raisons je vous déconseille d'utiliser delete sur un tableau ! Si vous voulez supprimer un élément d'un tableau utilisez la méthode splice qui est conçu pour ça.

var l = ['a', 'b', 'c']; l.splice(2,1); // Array.splice(index, count) Sys.Debug.trace(l.length); // => 2

Vous pouvez également utiliser la méthode removeAt introduite par Microsoft Ajax Library.

Posted: samedi 26 janvier 2008 03:25 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

coucou747 a dit :

sympa comme astuce :)

# janvier 29, 2008 16:06
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [Expression Web] Astuce de la Semaine : Utilisation et Configuration des Extraits de Code par Chronos, Blog d'un Intégrateur .NET le il y a 15 heures et 13 minutes

- Faire de l'AJAX sans restrictions de domaine par Kévin Gosse le il y a 17 heures et 42 minutes

- [IronPython] : IronPython & Silverlight 2 - Part II par Kim's Blog le 07-22-2008, 14:50

- [WPF] Des requêtes NDepend pour analyser vos projets WPF par Thomas Lebrun le 07-21-2008, 09:27

- Liste de jeux pour Silverlight par Pierrick's Blog le 07-20-2008, 14:37

- T_PAAMAYIM_NEKUDOTAYIM par MadMatt le 07-19-2008, 16:16

- Et je mets le son.... par Pierrick's Blog le 07-19-2008, 12:09

- SharePoint : Comment interdire l’accès à un utilisateur pour tous les sites d’une Web Application par Blog Technique de Romelard Fabrice le 07-18-2008, 19:05

- VPC - Reset de la position de la console par Blog technique de Nicolas Boonaert le 07-18-2008, 16:29

- Un bug dans IE rendra cette page… non-imprimable ! par Le blog de FremyCompany le 07-18-2008, 15:33