IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

React Discussion :

Créer un array à l'aide d'une boucle


Sujet :

React

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Créer un array à l'aide d'une boucle
    Bonjour à tous,

    Ce que je cherche à faire est vraiment tout bête mais je ne trouve nulle part comment faire, et mes tentatives n'ont pas été très fructueuses ...
    Mon objectif c'est d'avoir une fonction qui crée un tableau contenant les valeurs qui me permettront ensuite d'initialiser un certain nombre de composant avec un map.

    Je pensais à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	genererValeursCase() {
    		const result = []
    		for(var i=1 ; i <= NOMBRE_CASES ; i++) {
    			result.push({id: i, name: "case" + i})
    		}
    		return result
    	}
    L'objectif étant ensuite de créer un certain nombre de cases en ayant un id et un nom.

    Qu'est-ce que je loupe ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    • il manque le terme function ...
    • NOMBRE_CASES n'est pas défini
    • const définit une constante
    • ...

    Bref : tout est faux.

    Il faut vraiment que tu commences par les bases du JavaScript.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Oui j'ai oublié de mettre cette ligne là !
    je le met en constante au début du fichier de la sorte :
    const NOMBRE_CASES = 25

    Dans mon cas il me faudra surement faire des milliers de cases, du coup c'est pour ça que je cherche à pouvoir facilement et rapidement créer tout ces composants.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "use strict";
    const NOMBRE_CASES = 25;
    function genererValeursCase() {
    		let result = [];
    		for(let i=1; i<=NOMBRE_CASES; i++) {
    			result.push({id: i, name: "case" + i});
    		}
    		return result;
    	}
    console.log( genererValeursCase() );
    Voir aussi : Le mode strict ("use strict";)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Merci pour ce code !
    En effet ça fonctionne bien, dans la console je vois bien le résultat et le contenu du tableau.

    Par contre comment je fais pour attribuer ce résultat à une variable ?

    Car j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var infosCarte = genererValeursCase()
    et puis dans mon render :
    et là ça plante avec l'erreur :
    Objects are not valid as a React child (found: object with keys {id, name}). If you meant to render a collection of children, use an array instead.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne connais pas la syntaxe React.

    Mais c'est un array contenant des objets.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    J'ai pu faire un map sur la fonction en elle même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div className = "infosCarte">
    	{
    		genererValeursCase().map(({id, name}) => (
    			<p>Id : {id} et Name : {name}</p>
    		))
    	}
    </div>
    Mais si jamais quelqu'un sait comment affecter le résultat de la fonction à une variable, pour ensuite faire le mpa sur la variable par exemple, je ne suis pas contre !

    Merci beaucoup déjà pour m'avoir débloqué

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hawthorne Voir le message
    ...Mais si jamais quelqu'un sait comment affecter le résultat de la fonction à une variable...
    Ça tu sais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var infosCarte_array = genererValeursCase();
    Ensuite, en JS, on parcourt l'array, avec for(...of...) (par exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let infosCarte_array = genererValeursCase();
    for( let infosCarte of infosCarte_array)
    {
      console.log( infosCarte.id, infosCarte.name );
    }
    Ça, ça reste du JS "classique".

Discussions similaires

  1. Comment créer un array à deux dimensions avec une boucle
    Par m4riachi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/05/2015, 16h17
  2. [VBA-E] Ouvrir une série de fichiers à l'aide d'une boucle
    Par Tiki40 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2006, 14h34
  3. Créer un 'panel' à l'aide d'une feuille de style
    Par Daimonji dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 07/12/2006, 10h10
  4. Réponses: 6
    Dernier message: 15/09/2006, 08h54
  5. Réponses: 2
    Dernier message: 14/07/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo