Цикл по объекту JS и подтверждение одного из его свойств - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть объект javascript

gui: {
    windowTest: {},
    draw: function() { ... }
}

, где windowTest позже инициализируется следующим образом:

windowTest = new Window(x,y,w,h);

и конструктор Window ...

function Window(x,y,w,h){
    this.m = 0;
    this.x = x;
    this.y = y;
        ...
}

Как бы я прошел через объект GUI и проверил бы:

gui[key].m == this.m-1;

в другой части кода?

После просмотра различных вопросов, задаваемых по циклу через объекты JS, я попробовал это:

this.m = 5;
for(var key in gui){
    if(!gui.hasOwnProperty(key)){
        if(gui[key].m == this.m-1){
            //something
        }
    }
}

но это ничего не сделало.Я понятия не имею, что вообще делает приведенный выше фрагмент кода, поэтому я не смог его отладить.

1 Ответ

0 голосов
/ 29 ноября 2018

это сработало:

for(var key in gui){
    if(!gui.hasOwnProperty(key)) continue;
    if(gui[key].m !== undefined) {
        console.log(gui[key].m);
    }
}

перебирает все ключи в объектном интерфейсе, затем определяет, есть ли у одного из ключей свойство, которое я ищу, и печатает его.

...