ugrás a tartalomhoz

javascript - objektum iteráció

bld · 2012. Jan. 5. (Cs), 13.47
Sziasztok!

Hobbi szinten egy canvas alapú játékot fejlesztek, amiben van egy ilyen "config" fileom:

function GameObjects(){
    
    this.ball = {
        x : 25,
        y : 250,
        dx : 1.5,
        dy : -4,
        ballcolor : "#FFFFFF",
        imagesource : "images/ball.png"
    };

    this.paddle = {
        paddlex : 150,
        paddleh : 10,
        paddlew : 75,
        paddlecolor : "#FFFFFF",
        imagesource : "images/paddle.png"
    };

    this.controls = {
        leftKey : 37,
        rightKey : 39
    };
    
    this.brick = {
        width : 59,
        height : 15    
    };
    
}
Amit szeretnék: végigmenni az objektum tulajdonságain, és amelyik tulajdonság tartalmaz imagesource jellemzőt azt belerakni egy sima arraybe.

A problémám: a for ciklus i változója (szerintem) stringbe konvertálódik, és nem tudok hívatkozni egy jellemzőre sem pl így: "i.imagesource". Kerülő megoldással meg tudnám oldani a dolgot, de nem igazán praktikus, és nem is igazán elegáns megoldás. (Probáltam var i = new Object() -et is az eredmény ua.)

function Config() {
    var gameobjects = new GameObjects();

for (var i = 0 in gameobjects){    
    console.log (i);
}   
    
    this.initBall = function(){       
        return gameobjects.ball;
    }
    
    this.initPaddle = function(){        
        return gameobjects.paddle;
    }
    
    this.initControls = function(){
        return gameobjects.controls;
    }
    
    this.initBrick = function(){
        return gameobjects.brick
    }
}
 
1

for..in

Poetro · 2012. Jan. 5. (Cs), 14.23
for (var i in gameobjects){      
  if (gameobjects.hasOwnProperty(i)) {
    console.log(gameobjects[i]);
  }
}
2

köszi!

bld · 2012. Jan. 5. (Cs), 16.28
köszi!