Javascript

Résolu
huriddin Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
huriddin Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
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

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'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
huriddin Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour cette solution !
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Peuff, ça ressemble un peu trop à du .NET ou du Java ça! ;)
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
huriddin Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de votre aide !
0