Javascript

Résolu
huriddin Messages postés 16 Statut Membre -  
huriddin Messages postés 16 Statut Membre -
Bonsoir, je suis Awks, je suis nouveau dans le forum et j'ai une question qui me perturbe depuis un petit moment maintenant, en Javascript Comment fait on pour afficher tout les valeurs des personnages en un code ?

// Our Person constructor
function Person(name, age){
this.name = name;
this.age = age;
};

var Month = new Array();
Month[0] = new Person('alice', 40);
Month[1] = new Person('bob', 42);
Month[2] = new Person('michelle', 8);
Month[3] = new Person('timmy', 6);

for(i=0;i<Month.length;i++){
alert(Month[i].value);
}

J'obtiens [Objet objet] comme réponse alors que je veux les valeurs des personnages, je ne veux PAS utiliser cette methodes -> Month[i].name + Month[i].age

comment faire pour trouver tout les valeurs avec une seul chaine de code ?

Cordialement.

2 réponses

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut, je sais pas quel navigateur/moteur JS tu utilises mais
    .value
    n'étant pas une propriété de
    Person
    c'est anormal (ou pas standard, dans ce cas il faut mettre au bucher ce moteur) qu'il renvoie un objet.
    Pour lister les variables d'un objet, c'est aussi simple que
    for(var key in obj) {
        var value = obj[key];
    }
    Si tu remets ça dans ta boucle, ça donne:
    for(i=0;i<Month.length;i++){
        var values = "";
        for(var key in Month[i]) {
            values += key + "=" + Month[i][key] + "\n";
        }
        alert(values);
    }
    1
    1. huriddin Messages postés 16 Statut Membre
       
      Merci pour cette solution !
      0
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Bonjour,

    Voici une autre solution :

    // Our Person constructor
    function Person(name, age){
        this.name = name;
        this.age = age;
    
        this.toText = function() {
            return this.name + " (" + this.age + ")";
        }
    };
    
    var Month = new Array();
    Month[0] = new Person('alice', 40);
    Month[1] = new Person('bob', 42);
    Month[2] = new Person('michelle', 8);
    Month[3] = new Person('timmy', 6);
    
    for(i=0;i<Month.length;i++){
        alert(Month[i].toText()); 
    } 

    1
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      Peuff, ça ressemble un peu trop à du .NET ou du Java ça! ;)
      0
    2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      Deux langages que je n'ai pourtant jamais utilisé.
      C'est une technique que l'on retrouve dans tous les langages avec la notion d'objets / de classes.
      0
    3. huriddin Messages postés 16 Statut Membre
       
      Merci de votre aide !
      0