- 12, May 2024
- #1
Привет,
У меня есть объект, содержащий несколько подобъектов. Мне было интересно, есть ли способ перебрать подобъекты, начиная с сетки объектов-оболочки, вплоть до самых глубоких подобъектов, используя цикл for in.
вар сетка = {
A:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
B:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
C:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
D:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
E:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
F:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
G:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
}
Я хотел бы проверить, содержат ли массивы выстрелов и врагов что-то.
Для этого я сейчас использую длинную серию if/else if для каждой из 49 возможностей: if(grid.A.a.shots.length>0 & & grid.A.a.ennemies.length>0), else if(grid.A.b.shots. длина>0 & & grid.A.b.ennemies.length>0) и т. д.
Я уже использую это:
for (var prop в obj){
console.log(obj[prop])
}
который возвращает только первую глубину объекта сетки.
вар сетка = {
A:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
B:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
C:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
D:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
E:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
F:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
G:{a:{shots:[],ennemies:[]},b:{shots:[],ennemies:[]},c:{shots:[],ennemies:[]},d:{shots: [],ennemies:[]},e:{shots:[],ennemies:[]},f:{shots:[],ennemies:[]},g:{shots:[],ennemies:[]} },
}
Я хотел бы проверить, содержат ли массивы выстрелов и врагов что-то.
Для этого я сейчас использую длинную серию if/else if для каждой из 49 возможностей: if(grid.A.a.shots.length>0 & & grid.A.a.ennemies.length>0), else if(grid.A.b.shots. длина>0 & & grid.A.b.ennemies.length>0) и т. д.
Я уже использую это:
for (var prop в obj){
console.log(obj[prop])
}
который возвращает только первую глубину объекта сетки.