Javascript

Résolu/Fermé
huriddin Messages postés 13 Date d'inscription lundi 30 juin 2014 Statut Membre Dernière intervention 13 juillet 2014 - 30 juin 2014 à 21:54
huriddin Messages postés 13 Date d'inscription lundi 30 juin 2014 Statut Membre Dernière intervention 13 juillet 2014 - 1 juil. 2014 à 01:55
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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
30 juin 2014 à 22:11
'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 lundi 30 juin 2014 Statut Membre Dernière intervention 13 juillet 2014
1 juil. 2014 à 01:54
Merci pour cette solution !
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
30 juin 2014 à 23:08
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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
30 juin 2014 à 23:09
Peuff, ça ressemble un peu trop à du .NET ou du Java ça! ;)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
30 juin 2014 à 23:21
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 lundi 30 juin 2014 Statut Membre Dernière intervention 13 juillet 2014
1 juil. 2014 à 01:55
Merci de votre aide !
0