Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 08h38   #1
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Par défaut Supprimer doublons d'un tableau

Bonjour à vous tous,

J'ai une fonction que j'aimerais que vous me validiez, elle supprime des doublons d'un tableau mais je voulais savoir si on pouvait pas l'améliorer voici donc le code de la fonction :
Code :
1
2
3
4
5
6
7
8
9
function RemoveDupArray(a)
{
	a.sort();
	for (var i = 1; i < a.length; i++)
	{
		if (a[i-1] === a[i])
		a.splice(i, 1);
	}
}
Merci d'avance de vos réponses
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h56   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonjour,

Avec cet algo, tu ne pourras comparer que les deux éléments qui se suivent. Tu dois faire un autre boucle imbriqué dans le for.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h28   #3
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Cette seconde boucle va me servir à quoi en fait ?
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 11h06   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 016
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 016
Points : 45 105
Points : 45 105
non y'a un sort avant...
faut juste penser à decrémenter le i quand il y une suppression
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 11h08   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Citation:
Envoyé par SpaceFrog Voir le message
non y'a un sort avant...
Désolé, j'ai loupé ça
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 12h42   #6
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Merci space frog.. =)

Mais je le décrémente où mon i alors ?? dans la boucle ?, je fais un simple
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h03   #7
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
Salut,

tu dois le mettre dans le for, mais à l'intérieur du if sinon à chaque suppression tu vas sauter une valeur à tester
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h06   #8
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Ah d'accord oui effectivement tu as raison. Mais ce que je comprends pas c'est que j'ai l'impression que ma fonction marche je 'lai testé sur un tableau et ça fonctionne. Quelqu'un pourrait il vérifier si de son côté ça fonctionne
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h22   #9
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
Ta fonction ne fonctionne pas toujours si tu ajoutes pas le i--.

Par exemple avec ce tableau :

Code :
1
2
 
new Array(1,1,1,2);
j'obtiens le tableau suivant :

d'où l'utilité du i--
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h29   #10
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
C'est vraiment bizarre moi avec mon tableau ça marche tout le temps.Bon c'est un tableau contenant des email je pense pas que ça change grand chose. Je vais tester avec le i--
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h31   #11
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Est ce que comme ça c'est bon ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function RemoveDupArray(a)
{
	//	Tri les élements du tableau
	a.sort();
	for (var i = 1; i < a.length; i++)
	{
		//	Le triple = retourne vrai si a[i-1] est égal à a[i]
		//	et qu'il sont de même type
		if (a[i-1] === a[i])
			//	Retourne une tranche de tableau composé des éléments 
			//	ayant un indice supérieur ou égal à i et < 1.
			a.splice(i, 1);
			a[i]--;
	}
}
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h32   #12
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
si dans ton tableau tu n'as que des doublons ça marchera à tous les coups... par contre si tu as des trios, là ça va poser problème comme avec mon exemple

non ton code n'est pas bon :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function RemoveDupArray(a)
{
	//	Tri les élements du tableau
	a.sort();
	for (var i = 1; i < a.length; i++)
	{
		//	Le triple = retourne vrai si a[i-1] est égal à a[i]
		//	et qu'il sont de même type
		if (a[i-1] === a[i]){

			//	Retourne une tranche de tableau composé des éléments 
			//	ayant un indice supérieur ou égal à i et < 1.
			a.splice(i, 1);
			i--;
                 }
	}
}
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 13h49   #13
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
j'ai essayé avec un trio et ça fonctionne je comprends pas pourquoi ^^ bon je vais tenir compte de ce que tu m'as dis et effectuer la modif merci à vous tous =)
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web