JSFiddle - React, Tailwind, and code Playground

by Alexandre Simoes

JavaScript

var houses = {},
  House = function(id, name, rooms) {
    this.id = id;
    this.name = name;
    this.rooms = rooms || [];
  },
  Room = function(id, name) {
    this.id = id;
    this.name = name;
  };

// houses now is an empty object
// lets add a new house with no rooms
var house1 = new House(1, 'House 1');
houses[house1.name] = house1;

// what about a house with one room?
var house2 = new House(2, 'House 2', [new Room(1, 'Room A')]);
houses[house2.name] = house2;

// we can even create a new empty house and set the values after
var house3 = new House();
house3.name = 'My gorgeous house';
house3.id = 3;
house3.rooms.push(new Room(1, 'Room 11'));
house3.rooms.push(new Room(1, 'Room 12'));
houses[house3.name] = house3;

// lets test what we've done
console.log('House 1 is called: ' + houses['House 1'].name);
console.log('House 1 has ' + houses['House 1'].rooms.length + ' rooms.');

console.log('House 2 is called: ' + houses['House 2'].name);
console.log('House 2 has ' + houses['House 2'].rooms.length + ' rooms.');

console.log('House 3 is called: ' + houses['My gorgeous house'].name);
console.log('House 3 has ' + houses['My gorgeous house'].rooms.length + ' rooms.');

// now we can delete House 2
delete houses['House 2'];
//Now trying to get House 2 should return undefined
console.log(houses['House 2']);