Bonjour,

je debute un peu dans la POO et jaimerais avoir si possible une solution pour mettre mes lignes dans une boucle
voici mon code:

var roche1      = new Roche("1");
var roche2      = new Roche("2");
var roche3      = new Roche("3");
var roche4      = new Roche("4");

roche1.Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);
roche2.Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);
roche3.Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);
roche4.Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);

j'aimerais quelque chose du genre:
Mais quand je met un objet dans un tableau cela ne fonctionne pas

tab[roche1,roche2,roche3,roche4];

for(var i = 0; i<4;i++)
    tab[i].Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);
}

6 réponses


SNOWWTARIE
Réponse acceptée

Je ne suis pas sûr de comprendre ce que tu veux faire, la solution que tu nous présente fonctionne bien.

https://jsfiddle.net/c6nvr7y0/1/

Après si tu veux en effet itérer sur les différentes valeurs d'un objet, il faudra utiliser le for..in

const foo = {bar: "baz", dummy: "lorem"};

for (prop in foo) {
    console.log(prop); // renverra le nom de la propriété
    console.log(foo[prop]); // renverrra la valeur de la propriété
}

Pour parser un objet comme un tableau tu a plusieur possibilité:

Jack88
Auteur

Mais si je veux lister des objets pour les utiliser dans une boucle ?

.Each ou for in

@pluche

Pierre

Bonjour.
Par exemple :

tab.forEach(roche => {
    roche.Collision(vaisseau.x,vaisseau.y,vaisseau.width,vaisseau.height);
});
Jack88
Auteur

Merci a tous pour vos reponses qui m'ont quand meme appris des choses :)

Finalement ma méthode marche bien, je ne sais pas pourquoi quand je l'ai testé, elle ne marchait pas
SNOWWTARIE, du coup comme tu m'as dit que cela fonctionne bien, j'ai retesté.

Du coup merci :)