Last active
September 24, 2021 12:09
-
-
Save rje1974/c574c32bfa1106a41b54193dc01b0c92 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
2- Piso, que debe tener: | |
un constructor debe recibir el nombre de ese piso con formato de texto. Por ejemplo: "primer piso" y guardarlo | |
en una propiedad nombre para poder usarla posteriormente. LIQUIDADO. | |
un método pushDepartamento y getDepartamentos para agregar departamentos y obtener el listado completo | |
de los departamentos de ese piso (ambos usan una propiedad interna departamentos para guardar y leer). LIQUIDADO | |
*/ | |
/* | |
3- Departamento: LIQUIDADO | |
el constructor debe recibir el nombre de ese departamento con formato de texto. Por ejemplo: "mi depto". | |
debe tener un método getName() que devuelva el nombre del departamento. | |
*/ | |
// crear las clases Edificio, Piso y Departamento aquí | |
class Departamento { | |
nombre: string | |
constructor(nombreCtrl:string){ | |
this.nombre = nombreCtrl | |
} | |
getName(){ | |
return this.nombre | |
} | |
} | |
class Piso { | |
nombre:string; | |
departamentos:Departamento[] = []; | |
constructor(nombreCtrl:string){ | |
this.nombre = nombreCtrl | |
} | |
pushDepartamento(cargaDepartamentoEnPiso:Departamento){ | |
return this.departamentos.push(cargaDepartamentoEnPiso) | |
} | |
getDepartamentos(){ | |
return this.departamentos | |
} | |
} | |
/* | |
1- Edificio, que debe tener: | |
un constructor que reciba un array de Piso y lo guarde en una propiedad. LIQUIDADO | |
un método addDepartamentoToPiso(nombreDePiso:string, departamento:Departamento) que reciba un Departamento y | |
lo ubique en el piso con el nombre indicado, si no existe un piso con ese nombre debe mostrar un error. | |
un método getDepartamentosByPiso(nombreDePiso:string) que devuelva todos los Departamento(s) de un piso. | |
*/ | |
class Edificio { | |
arrayDePisos: Array<Piso> = []; | |
constructor(arrayDePisosCtrl:Array<Piso>){ | |
this.arrayDePisos = arrayDePisosCtrl | |
} | |
addDepartamentoToPiso(nombreDePiso:string, departamento:Departamento){ | |
// const nuevoPiso = new Piso(nombreDePiso) | |
// const nuevoDptoEnPiso = nuevoPiso.pushDepartamento(departamento) | |
// return nuevoDptoEnPiso | |
const resultado = this.arrayDePisos.find( x => x.nombre === nombreDePiso ) | |
if (resultado === undefined) { | |
console.log("Esto no esta andando") | |
} else { | |
resultado.pushDepartamento(departamento) | |
} | |
} | |
getDepartamentosByPiso(nombreDePiso:string){ | |
const resultado = this.arrayDePisos.find( x => x.nombre === nombreDePiso ) | |
return resultado.getDepartamentos() | |
} | |
// function main(){ | |
// const edificioLautario = new Edificio([]) | |
// const pruebaDepartamentoA = new Departamento("A"); | |
// const pruebaDepartamentoB = new Departamento("B"); | |
// const pruebaDepartamentoC = new Departamento("C"); | |
// const pruebaPisoSexto = new Piso("Sexto piso") | |
// const pruebaPisoOctavo = new Piso("Octavo piso") | |
// const pruebaPisoAgregaDptoA = pruebaPisoSexto.pushDepartamento(pruebaDepartamentoA) | |
// const pruebaPisoAgregaDptoB = pruebaPisoSexto.pushDepartamento(pruebaDepartamentoB) | |
// const pruebaPisoAgregaDptoC = pruebaPisoSexto.pushDepartamento(pruebaDepartamentoC) | |
// const agregadoPisoEdificio = edificioLautario.arrayDePisos.push(pruebaPisoSexto,pruebaPisoOctavo) | |
// // Prueba | |
// console.log(pruebaDepartamentoA) | |
// console.log(pruebaPisoSexto) | |
// console.log(edificioLautario.arrayDePisos[0].departamentos[2]) | |
// } | |
// main() | |
// no modificar este test | |
} | |
function testClaseEdificio() { | |
const unPiso = new Piso("planta baja"); | |
const otroPiso = new Piso("primer piso"); | |
const unEdificio = new Edificio([unPiso, otroPiso]); | |
const deptoUno = new Departamento("depto uno"); | |
const deptoDos = new Departamento("depto dos"); | |
const deptoTres = new Departamento("depto tres"); | |
unEdificio.addDepartamentoToPiso("planta baja", deptoUno); | |
unEdificio.addDepartamentoToPiso("planta baja", deptoDos); | |
unEdificio.addDepartamentoToPiso("planta baja", deptoTres); | |
const deptos = unEdificio.getDepartamentosByPiso("planta baja"); | |
const deptosEmpty = unEdificio.getDepartamentosByPiso("primer piso"); | |
const deptosBOBI = unEdificio.getDepartamentosByPiso("tercer piso"); | |
const deptos2 = deptos | |
console.log("Un piso",unPiso) | |
console.log("") | |
console.log("Un piso",unPiso.getDepartamentos()) | |
console.log("") | |
console.log("Un unEdificio",unEdificio) | |
console.log("") | |
console.log("Deptos",deptos) | |
console.log("") | |
console.log("Deptos",deptos) | |
console.log("") | |
console.log("DeptosEmpty",deptosEmpty) | |
// if ( | |
// Array.isArray(deptosEmpty) && | |
// deptosEmpty.length == 0 && | |
// deptos.length == 3 && | |
// deptos[2].getName() == "depto tres" | |
// ) { | |
// console.log("testClaseBandaApartment passed"); | |
// } else { | |
// throw "testClaseBandaApartment not passed"; | |
// } | |
} | |
function main() { | |
testClaseEdificio(); | |
} | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment