Javascript динамический вложенный объект - PullRequest
0 голосов
/ 01 июня 2018

Моя цель - генерировать сериализованные объекты в главном объекте.Солнечная система - это моя идея вложения, где я могу получить доступ к переменной, называя ее следующим образом:

universe.system1.planet4.x

вселенная> система> планета> и т. Д.

Я застрял при генерации всего, что вложено.До сих пор я могу получить только 1 уровень вложенности для правильной работы.

setInterval(onTimerTick, 1000); 
function onTimerTick() {

var entityCount=4;
  for (i=1; i<entityCount;i++){
    console.log('system' + i)
    universe['planet'+i]=[entityCount,entityCount,entityCount,entityCount];  
  }//entitycounts in object are placeholder for more data
 console.log(universe);
}

var universe = {
}

Вывод

Object {
  system0: [5, 5, 5, 5],
  system1: [5, 5, 5, 5],
  system2: [5, 5, 5, 5],
  system3: [5, 5, 5, 5]
}

Каждый раз, когда я пытаюсь добавить любое вложение, оно не будет генерироваться.

1 Ответ

0 голосов
/ 01 июня 2018

Это что-то вроде этого?

Вам необходимо создать X вложенных циклов, с X - количеством вложенных уровней, которые вы хотите создать.

const nbSystem = 5;
const nbPlanetPerSystem = 3;

// Create the base
const universe = {};

// Generate systems
for (let i = 0; i < nbSystem; i += 1) {
  universe[`system${i + 1}`] = {};

  // Generate planets
  for (let j = 0; j < nbPlanetPerSystem; j += 1) {
    universe[`system${i + 1}`][`planet${j + 1}`] = 'something';
  }
}

console.log(universe);

console.log(universe.system3.planet3);
...