Javascript

Résolu
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. Contributeur
    '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. Merci pour cette solution !
  2. 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. Contributeur
      Peuff, ça ressemble un peu trop à du .NET ou du Java ça! ;)
    2. 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.
    3. Merci de votre aide !