Comparaison d'élément de tableau

Résolu
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 2 oct. 2008 à 09:03
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 2 oct. 2008 à 10:14
Bonjour,
Voilà, je cherche à comparer une réponse donner par l'internaute dans un champs texte avec la bonne réponse.
Pour ce faire, j'utilise une fonction qui créé deux tableaux, un de la réponse donnée, un de la bonne réponse. Ensuite, je vire les mots qui ont moins de 4 lettres pour éviter de devoir comparer les pronoms, article et autres mots de construction de phrase, enfin, je passe tout en minuscule pour les réponse contenant des nom propres au cas ou les majuscules ne seraient pas respectée.
Cela donne la fonction en bas de message.
Sauf que le problème c'est que je n'arrive pas à trouver comment comparer chaque élément de chaque tableau avec chaque élément de l'autre.

Ma question est donc la suivante : existe-t-il une fonction qui permette de comparer les éléments de deux tableaux, non pas selon leur indice (élément 1, avec élement 1 de l'autre) mais bien tous les élément de l'un avec tous les éléments de l'autre.

Vous remerciant par avance pour votre aide.

function verifRep(){
    //trace("-----> VerifRef : reponse = "+reponse);
    trace("et chp_rep_mc.recup = "+chp_rep_mc.recup);
    var pre_rep:String = new String(chp_rep_mc.recup);//reponse donnée par le joueur
    var dec_reponse:Array = pre_rep.split(" ");
    for (var i = 0; i<dec_reponse.length; i++) {
        trace("le nombre de lettre du mot n°"+i+" est  :  "+ dec_reponse[i].split("").length);
        if(dec_reponse[i].split("").length<4){
            trace("dec_reponse[i] = "+dec_reponse[i]);
            dec_reponse.splice(i,1);// Élimination du mot
        }
    }
    for (var i = 0; i<dec_reponse.length; i++) {
        dec_reponse[i]=dec_reponse[i].toLowerCase();
        trace("nouvelle "+dec_reponse[i]);//MOTS DE LA RÉPONSE DONNÉE PAR LE JOUEUR DE PLUS DE 4 LETTRES
    }
    //------------------------------------------------------------------------------
    var pre_rep_bon:String = new String(reponse);// bonne réponse
    var dec_bonreponse:Array = pre_rep_bon.split(" ");
    for (var i = 0; i<dec_bonreponse.length; i++) {
        trace("bonne réponse "+dec_bonreponse[i]);
        if(dec_bonreponse[i].split("").length<4){
            trace("dec_bonreponse[i] = "+dec_bonreponse[i]);
            dec_bonreponse.splice(i,1);// Élimination du mot
        }
        else{
            trace("---->>>>>>> ELSE");
        }
    }//
   
    for (var i = 0; i<dec_bonreponse.length; i++) {
        dec_bonreponse[i]=dec_bonreponse[i].toLowerCase();
        trace("nouvelle bonne "+dec_bonreponse[i]);//MOTS DE LA BONNE RÉPONSE DE PLUS DE 4 LETTRES
    }
    //---------------------------------------------------------------------------------
    // COMPARAISON DE LA RÉPONSE DU JOUEUR À LA BONNE RÉPONSE
}

Tout vient à qui sait attendre

1 réponse

cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
2 oct. 2008 à 10:14
Pour ceux que cela intéresse j'ai trouvé une fonction qui répond à mes attentes :

function compare( a1:Array, a2:Array ):Void{
    var nbre_reponse:Array = Array();
    for ( var i:Number = 0; i < a1.length; i++ ) {
        for ( var j = 0; j < a2.length; j++ ) {
            if ( a1[i] == a2[j] ) {
                trace( "i : " + a1[i] + " --> j : " + a2[j] );
                var pushed:Number = nbre_reponse.push(a1[i]);
                trace(pushed); // Affiche 4
               }
        }
    }
    trace("nbre_de_mot = "+nbre_de_mot);
    if(pushed==nbre_de_mot){
        trace("GAGNE");
        chp_ques.text=chp_rep_mc.recup+" est bien la bonne réponse";// attribution au champs texte
        chp_ques.setTextFormat(my_fmt);// Style
        attribution();
    }
    else{
        trace("PERD");
        chp_rep_mc.chp_rep="";
        chp_rep_mc.recup="";
        chp_ques.text="Mauvaise réponse.\nLa réponse à la question : "+question+" est : "+reponse;// attribution au champs texte
        chp_ques.setTextFormat(my_fmt_rep);// Style
        afficheTotaux();
    }
}

Tout vient à qui sait attendre
3
Rejoignez-nous