-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprueba.js
126 lines (110 loc) · 3.17 KB
/
prueba.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
let autos = [
{
marca: "Ford",
modelo: "Fiesta",
color: "Azul",
anio: 2019,
km: 200,
precio: 150000,
cuotas: 12,
patente: "APL123",
vendido: true
},
{
marca: "Toyota",
modelo: "Corolla",
color: "Blanco",
anio: 2019,
km: 0,
precio: 100000,
cuotas: 14,
patente: "JJK116",
vendido: true
}
]
function completarAuto(marca, modelo, color, anio, km, precio, cuotas, patente, vendido) {
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.anio = anio;
this.km = km;
this.precio = precio;
this.cuotas = cuotas;
this.patente = patente;
this.vendido = vendido;
} // no sirvió pero puede ser útil para registrar nuevos autos, intenté usarla en buscarAuto
// función constructora
let concesionaria = {
autos: autos,
buscarAuto: function (patenteIng) {
let resultado = null;
autos.forEach(function (elemento) {
switch (elemento.patente) {
case patenteIng:
resultado = elemento;
break;
case !patenteIng:
resultado = null;
break;
}
})
return resultado;
},
venderAuto: function (patenteIng) {
let buscarPatente = this.buscarAuto(patenteIng);
buscarPatente.vendido = true;
return buscarPatente;
},
autosParaLaVenta: function () {
let filtrado = this.autos.filter(function (elemento) {
return elemento.vendido == false;
});
return filtrado;
},
autosNuevos: function () {
let autosSinVender = this.autosParaLaVenta();
let autos0km = autosSinVender.filter(function (elemento) {
return elemento.km == 0;
});
return autos0km;
},
listaDeVentas: function () {
let precios = [];
for (let i = 0; i < this.autos.length; i++) {
switch ((autos[i]).vendido) {
case true:
precios.push(autos[i].precio);
break;
default:
precios.push(0);
}
}
return precios;
},
totalDeVentas: function () {
let precios = this.listaDeVentas();
let total = precios.reduce(function (acumulador, valor) {
return acumulador + valor;
});
return total;
},
puedeComprar: function (auto, persona) {
if (persona.capacidadDePagoEnCuotas > auto.precio / auto.cuotas && auto.precio < persona.capacidadDePagoTotal) {
return true;
} else {
return false;
}
},
autosQuePuedeComprar: function (persona) {
let autosParaLaVenta = this.autosParaLaVenta();
let puedeComprar = [];
for (let i = 0; i < autosParaLaVenta.length; i++) {
if (this.puedeComprar(autosParaLaVenta[i], persona) == true) {
puedeComprar.push(autosParaLaVenta[i]);
}
}
return puedeComprar;
}
}
console.log(concesionaria.totalDeVentas());
module.exports = autos;