Problème de splice

anartiste Messages postés 14 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 15 octobre 2007 - 11 mai 2005 à 09:31
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 11 mai 2005 à 18:11
anartiste

Bonjour à tous , voilà, je voudrais appliquer un splice sur des tableaux crées en série mais ça ne fonctionne pas, je vous montre le code et vous explique.

tableau=["a","b","c","d"];
n=tableau.length;
npuis=Math.pow(n,n);
for(j=0;j<npuis;j++){
this["tab"+j]=tableau;
}

for(i=0;i<n;i++){
for(j=0;j<npuis;j++){
this["tab"+j].splite(0,1);
}
}
Le poblème maintenant c'set que si je trace this["tab"+i] ça me montre que tous les "tab"+i sont splités en même temps et après n incrémentatation de j il n'a plus rien.

voilà si quelqu'un peut m'expliquer c'est sympa sinon bonne journée

7 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
11 mai 2005 à 11:02
vérifie ta syntaxe .. tu as écrit "splite" au lieu de "splice"...

pour ton cas, il faut que tu affecte une variable ou un champ lors de ton splice :

A = toto.splice(0,1);

Sinon, tu n'auras aucun résultat !

Peg'
0
anartiste Messages postés 14 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 15 octobre 2007
11 mai 2005 à 11:07
anartiste

merci pegase31 je vais essayer d'affecter ça à une variable, c'était bien splice et pas splite, merci du conseil
0
anartiste Messages postés 14 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 15 octobre 2007
11 mai 2005 à 11:07
anartiste

merci pegase31 je vais essayer d'affecter ça à une variable, c'était bien splice et pas splite, merci du conseil
0
anartiste Messages postés 14 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 15 octobre 2007
11 mai 2005 à 15:19
anartiste

re j'ai essayer an déclarant une variable mais ça ne marche toujours pas le fait est qu'il me splice tous mes tab en même temps au leiu de me splicer le tab0, puis le tab1, puis la tab2 ainsi de suite jusau'à la fin de la boucle et de reprendre ensuite à cause de la 1ere boucle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
11 mai 2005 à 15:43
En fait, tu essayes de faire quoi au juste ?
de Créer un tableau à 2 dimensions ?

Peg'
0
anartiste Messages postés 14 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 15 octobre 2007
11 mai 2005 à 17:48
anartiste

en fait je travail sur un moteur qui épuise toutes les possibilités de combiner les mots d'une phrase, j'explique j'ai un champ texte de saisie dans lequel on tape un texte, je récupère les mots et les place dans un tableau mon moteur doit se charger de recombiner les mots ensemble, j'ai déjà demandé de l'aidé, on m'a aidé mais j'ai un peu changé d'idée depuis. j'aimerais par exemple pour tableau=["a","b","c","d","e"], récupérer a,b,c,d,e; a,b,c,e,d; a,b,d,e,c; a,b,d,c,e etc il y a pour 5 mots ou letrres 1*2*3*4*5=120 possibilités, voilà j'essaie avec un splice mais il ne fonctionne pas comme il faut,
for(j=0;j<npuis;j++){
this["tab"+j]=["a","b","c","d","e"]
;
}

for(i=0;i<n;i++){
for(j=0;j<npuis;j++){
this["tab"+j].splite(0,1);
}
}
devrait me retirer une lettre à chaque this["tab"+j]pour chaque boucle i mais il me retire une lettre à tous les tab en même temps donc après j=5 tous mes tableaux sont vides, or ils devraient l'être après i=5

voilà, si tu as une solution complétement différente je suis preneur quand même, du genre une fonction de trie ou quoi merci d'avance
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
11 mai 2005 à 18:11
1° déjà, je vois que tu dois obtenir un nombre qui serait le factoriel du nombre de mots à mettre dans ta phrase. Or 5^5 (5 puissance 5) n'est pas un factoriel de 5 (1x2x3x4x5).
2° Ensuite, tu crées 5 tableaux contenant tous exactement la même chose : ["a","b","c","d","e"] .. quel interêt ?
3° Je ne vois pas en quoi un "splice" te permettrais de sortir une série mélangée des données contenues dans ton tableau .. es-tu certain de bien t'y prendre ?
4° Tu auras beau faire npuis fois le splice (que tu as, une fois de plus, mal écrit), si tu n'attribues pas à une variable ou à un tableau à ton opération, elle sera faite dans le vide .. et le résultat ne sera stocké nulle part !

Regarde bien dans le dico de Flash la fonction "Array.splice" et tu comprendras ce qu'elle fait ! (pour le dico : F1 sous Flash)

Je reste à dispo si tu as des questions.

Peg'
0
Rejoignez-nous