Probleme JS et les tableaux ( array )

Fermé
nickleus Messages postés 374 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 18 juin 2011 - 8 août 2009 à 16:58
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 - 11 août 2009 à 12:05
Bonjour,

J'ai une chaine de caractère de ce type :

var values = "bibi, vivi, didi"


Je souhaite supprimer "vivi". Je fait de donc de la façon suivante :

var id = "vivi";
var array = values . split ( ',' );
n = array.length;

var outPut = [];
for ( i = 0; n > i; i++ )
{
	if ( array[i] != id )
	{
		outPut[i] = array[i];			
	}					
}
				
values = outPut . join ( ',' );


mais ça me sort : "bibi, , didi"

Avec un trou entre les virgules. Savez-vous pourquoi ?

Merci beaucoup d'avance.

Cordialement.

1 réponse

Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 450
11 août 2009 à 12:05
Bonjour,
Alros déjà quand on teste ton code, values vaut bibi, vivi, didi . (j'aurais du m'arrêter la comme les autres mais bon...)
Il a fallu que je corrige ton code et fasse id =" vivi";

Ensuite , oui parce que output[2] et output[0] existent donc il fait comme si output [1] existe même s'il ne contient rien.

Donc tu peux remplacer par

<SCRIPT LANGUAGE="Javascript">
var values = "bibi, vivi, didi";

var id = " vivi";
var array = values . split ( ',' );
n = array.length;

var outPut = [];
var j=0;
for ( i = 0; n > i; i++ )
{
if ( array[i] != id )
{
outPut[j++] = array[i];
}
}

values = outPut . join ( ',' );

document.write(values);
et la on obtient bien bibi, didi
</script>
0