rss
[javascript] Libérer une case de tableau ?
par kij_82
 Fil de Discussions
Statut : Résolu
vendredi 15 décembre 2006 à 10:55:14
Bonjour,

Je voudrais savoir comment libérer une case d'un tableau en javascript, quelqun saurait-il faire ca ?

Par exemple, le tableau suivant :
<code>
var tab = new Array;
tab["popo"] = 1;
tab["tutu"] = 56;
...
/code>

Comment libérer la case "tutu" par exemple afin que la taille du tableau soit décrémentée automatiquement ?

Merci :)
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Configuration: Windows XP
Firefox 1.5.0.8
Répondre à kij_82  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par slum-dunk, le vendredi 15 décembre 2006 à 11:02:08 Fil de Discussions
tu peux utiliser l'algorithme qui consiste à décaler à gauche les éléments du tableau et à la fin du décalage tu donne à la valeur N(taille du tableau)=N-1;
Répondre à slum-dunk

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kij_82, le vendredi 15 décembre 2006 à 11:04:31 Fil de Discussions
Mum, oui, mais si je pouvais avoir une autre altenative que ca ca m'arrangerais ^^

PS : je précise que la méthode splice de l'objet Array ne fonctionne pas car elle se contente de remplacer la valeur de la case à supprimer par null. Donc la case est toujours là, la taille ne décrémente pas et une case ne référence plus rien, ce qui pose des problemes lors du parcours du tableau.
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par slum-dunk, le vendredi 15 décembre 2006 à 11:07:42 Fil de Discussions
keski te géne c'est l'implementation de l'algo ou j'ai pas été claire sur l'explication?
Répondre à slum-dunk

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kij_82, le vendredi 15 décembre 2006 à 11:06:42 Fil de Discussions
Haaa !!

J'ai trouvé mon bonheur : l'opérateur 'delete' de javascript permet cela

voir la page suivante pour les intéressés :
http://developer.mozilla.org/...

Merci :) ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par slum-dunk, le vendredi 15 décembre 2006 à 11:25:21 Fil de Discussions
c'est cool la soluce,mais tester l'algo de décalage te ferai un peu d'exercice...si tu as un pe temps.
Répondre à slum-dunk

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kij_82, le vendredi 15 décembre 2006 à 11:31:33 Fil de Discussions
Bon, il s'avère que l'option delete n'est pas si bien que ca en fait, donc j'ai finalement opté pour une fonction maison reprenant effectiviment l'idée de décalage, voici donc le code :
function freeBox ( lib ){
		
		var tmpArray = new Array();
		
		// --- Rebuild the array
		for ( var i = 0; i < this.box_list.lenght; i++ )
			if ( this.box_list[i].lib != lib )
				tmpArray[tmpArray.lenght] = this.box_list[i];
		
		// --- And set it to the boxlist of map
		this.box_list = tmpArray;
}


Mon tableau est une liste d'objet, d'ou l'acces à la propriété 'lib'.

Merci pour cette idée slum.

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par slum-dunk, le vendredi 15 décembre 2006 à 12:15:22 Fil de Discussions
voila l' algo.,tu tester à la main pour voir comment ça fonctionne

procédure dcg(données:tab(n):tableau d'objet,n:entier,k:entier)
//n est la taille du tableau
//k c'est la position de l'objet à supprimer dans ton tableau
var i:entier
début

pour i de k à n faire
{
tab(i)=tab(i+1);
}
n=n-1;

fin dcg

//dcg :décalage cyclique à gauche
Répondre à slum-dunk

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par slum-dunk, le vendredi 15 décembre 2006 à 17:26:47 Fil de Discussions
Bonsoir Kij_82,tu en est ou??
Répondre à slum-dunk

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Bludwarf, le dimanche 6 avril 2008 à 11:00:25 Fil de Discussions
Salut kij_82 je crois que tu pourrais améliorer ton algo en terme de vitesse.

Sur ton prog tu recrée entièrement ton tableau, alors qu'il suffit juste de faire remonter les élements suivant la case à supprimer. A la fin de ton tableau il te restera une case en trop : tu peux la supprimer en faisant : tonTablo.pop();

Et voilà j'espère t'avoir rendu service (même si le sujet en bien vieux!).
Répondre à Bludwarf

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kij_82, le lundi 7 avril 2008 à 10:51:10 Fil de Discussions 
Bonjour,

Effectivement le sujet est bien vieux et j'ai du oublié de le mettre à jour :s
A l'époque j'ai effectivement refais le programme pour ne pas recréer à chaque fois.

Merci en tout cas de ton aide :)

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Répondre à kij_82
Discussions pertinentes trouvées dans le forum
03/03 19h39[PHP/Javascript] Envoyer indice tableauProgrammation03/03 20h227
30/03 19h01[Javascript/php] - aide tableauProgrammation07/05 14h163
06/03 14h49Javascript recupere valeur tableauProgrammation06/03 15h163
24/10 13h05[javascript] verifier un tableauWindows24/10 15h221
Plus de discussions sur « [javascript] Libérer une case de tableau ? » Discussion en cours Discussion fermée Problème résolu
Logiciels pertinents trouvés dans les téléchargements
Télécharger Casc'ADSL 0.99 build 4209Casc'ADSL - Casc'ADSL est un outil destiné aux Internautes se connectant via le service d'accès distant et désireux de maintenir leur...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger Cashbox   0.50Cashbox - La gestion des finances n'est pas toujours chose facile pour tout le monde, sauf si on a fait des études spéciales. Voici...Catégorie: Comptabilité/Paie
Licence: Open Source
Télécharger GreaseMonkey 0.8.20080609.0GreaseMonkey - GreaseMonkey permet de bidouiller à la volée les pages web que vous consultez. C'est à dire qu'il va modifier la page...Catégorie: Extensions Firefox
Licence: Open Source
Plus de logiciels gratuits sur « [javascript] Libérer une case de tableau ? »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide