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

- [WPF] Nouvel article sur c2i.fr par Richard Clark le il y a 1 heure et 45 minutes

- F# nouvelle CTP 1.9.6.2 (update) par Pierrick's Blog le il y a 5 heures et 50 minutes

- La suite ...Proposition de collaboration rédactionnelle entre les communautés de développeurs et Microsoft France par LucasR le 09-05-2008, 17:45

- [Fun] Votre simulateur de vol avec Microsoft ESP par Julien Chable le 09-05-2008, 12:02

- [Best Practices] Customisation du My Site : Comment le modifier en amont et en aval par The Mit's Blog le 09-05-2008, 10:47

- Patrick Tisseghem s'en est allé ... par The Mit's Blog le 09-05-2008, 10:04

- MS AutoCollage par alex# le 09-05-2008, 09:18

- Un grand SharePointeur nous a quitte : Patrick Tisseghem manquera à la communauté ! par RedoBlog - The .NET Gentleman !!! le 09-05-2008, 08:52

- [WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ? par Thomas Lebrun le 09-04-2008, 10:56

- Article sur le filtrage des modèles de site SharePoint par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 09-04-2008, 00:11