Bonjour à tous,
Je vous demande votre aide aujourd'hui car je n'ai pas réussi à répondre à une question sur du javascript d'un travail que je dois rendre.
Il s'agit de la question numéro 8 dans laquelle il m'est demandé de compléter la fonction trouveEmplacement. Je n'arrive même pas a comprendre le but de cette fonction.. voici ce qui m'est indiqué:

Renvoie le noeud DOM correspondant à la position disponible pour placer un joueur sur le terrain ou null si aucune n'est disponible.
@param {HTMLElement} ligne - une div ligne de joueurs sur le terrain
@returns {HTMLElement || null} - une div de class "positions" disponible dans cette ligne
*/
const trouveEmplacement = function(ligne){
//A faire
}

Voici le lien vers le sujet: https://www.fil.univ-lille.fr/~thibaud/tw1/projet/js-2023/mini-projet-javascript.html
J'espère enfin comprendre cette fonction
Je vous remercie d'avance et très bonne journée a vous..

2 réponses


Jujudje
Réponse acceptée

Salut,

Il s'agit ici de renvoyer une div qui est libre, null sinon.
Il te suffit de parcourir les divs enfants de celle passée en paramètre, et renvoyer la 1ère que tu trouves qui ne contient pas déjà un joueur.

Exemple:

/**

  • Renvoie le noeud DOM correspondant à la position disponible pour placer un
  • joueur sur le terrain ou null si aucune n'est disponible
  • @param {HTMLElement} ligne - une div ligne de joueurs sur le terrain
  • @returns {HTMLElement || null} - une div de class "positions" disponible dans cette ligne
    */
    const trouveEmplacement = function(ligne){
    let dispo = null; // Valeur par défaut renvoyée si plus de place disponible pour un milieu, un attaquant ou un défenseur (selon la ligne passé en param)
    ligne.querySelectorAll('div').forEach(function(c) { // Parse chaque div de la ligne
    if (!c.getAttribute('id')) { // Par exemple ici tu vérifies si un id a été attribué (id de joueur quand la place est prise)
    dispo = c; // Garde en mémoire cette div libre
    }
    });

    return dispo; // Retournera la dernière div libre trouvée, null si plus de place...
    }

kxaa
Auteur

J'ai tout compris!!, merci infiniment pour toutes les explications elles sont tellement clair et m'ont faire comprendre en 5 minutes ce que je n'arrivais pas a comprendre pendant des heures. Merci beaucoup !!