Crear las siguientes clases con sus respectivos métodos y propiedades. Usar propiedades privadas. Cuando se devuelvan valores, si son objetos y arrays de las propiedades, devolver copias de los mismo, para evitar que puedan ser modificados.
- Propiedades
resultado
(número), inicializa en 0
- Métodos
sumar(numero)
: suma numero aresultado
, y actualizaresultado
con el valor de dicha operaciónrestar(numero)
: suma numero aresultado
, y actualizaresultado
con el valor de dicha operaciónmultiplicar(numero)
: suma numero aresultado
, y actualizaresultado
con el valor de dicha operacióndividir(numero)
: divide resultado pornumero
, y actualizaresultado
con el valor de dicha operaciónobtenerResultado()
: devuelveresultado
reiniciar()
: pone resultado en 0
- Observaciones
- arrojar un error cuando el argumento ingresado no sea un número, con
Number.isFinite()
- arrojar un error cuando se intenta dividir por 0
- arrojar un error cuando el argumento ingresado no sea un número, con
- Propiedades
encendido
(booleano), inicializa enfalse
velocidad
(número), inicializa en 0marca
(string)modelo
(número)patente
(string)
- Constructor
- pide como argumentos
marca
,modelo
,patente
y los asigna a sus respectivas propiedades
- pide como argumentos
- Métodos
arrancar()
poneencendido
entrue
apagar()
poneencendido
enfalse
acelerar()
suma 10 avelocidad
y actualiza dicha propiedaddesacelerar()
resta 10 avelocidad
y actualiza dicha propiedadtoString()
devuelve un string con la siguiente plantilla${marca} ${modelo}, patente ${patente}
- Observaciones
- sólo se puede acelerar o desacelerar si el auto se encuentra prendido
- sólo se puede apagar el auto si la velocidad es 0
- la velocidad mínima es 0
-
Propiedades
encendido
(booleano), inicializa enfalse
canal
(número), inicializa en 0canales
(número)volumen
(número), inicializa en 0marca
(string)
-
Constructor
- pide como argumentos
marca
ycanales
y los asigna a sus respectivas propiedades
- pide como argumentos
-
Métodos
prender()
poneencendido
entrue
apagar()
poneencendido
enfalse
verCanalSiguiente()
suma 1 acanal
y actualiza dicha propiedadverCanalAnterior()
resta 1 acanal
y actualiza dicha propiedadcambiarCanal(canal)
actualiza la propiedadcanal
con el valor del parámetrocanal
subirVolumen()
suma 1 avolumen
y actualiza dicha propiedadbajarVolumen()
resta 1 avolumen
y actualiza dicha propiedadtoString()
devuelve un string como el siguiente ejemplo:
Televisor Samsung - Canales: 100 - Canal actual: 23 - Volumen actual: 34
-
Observaciones
- solo se puede modificar el canal y el volumen si el televisor se encuentra prendido
canales
representa el máximo de canales posibles. Si se está en el canal máximo o mínimo (0), y se avanza o retrocede, debe dar toda la vuelta. P. ej.: si el canal máximo es 100, se está en el canal 100, y se avanza de canal, debe volver al 0- solo se puede cambiar a un canal que exista
- el volumen mínimo es 0 y el máximo 100
-
Propiedades
titulo
(string)notas
(array de strings), inicializa vacío
-
Constructor
- pide como argumento
titulo
y lo asigna a sus respectiva propiedad
- pide como argumento
-
Método
agregarNota(nota)
agreganota
al array denotas
actualizarNota(id, nota)
actualiza el ítem con índiceid
, reemplazándolo pornota
obtenerNota(id)
devuelve el ítem del arraynotas
con índiceid
eliminarNota(id)
elimina denotas
el ítem con índiceid
eliminarNotas()
borra todos los ítems denotas
listarNotas()
devuelve un string con todas las notas y sus respectivos ids, por ejemplo
Cosas para hacer ------------------------ 1. Ir al súper 2. Ver serie 3. Programar 4. Leer libro
-
Propiedades
- contactos (array de objetos), inicializa vacío
- llamadas (array de strings), inicializa vacío
-
Métodos
-
agregarContacto(contacto)
agregacontacto
acontactos
-
buscarPorNombre(nombre)
devuelve el contacto con dicho nombre en el arraycontactos
oundefined
si no lo encuentra -
buscarPorNumero(numero)
devuelve el contacto con dicho número en el arraycontactos
oundefined
si no lo encuentra -
eliminarContacto(nombre)
elimina el contacto con nombre
nombrede
contactos` -
llamar(nombre)
si existe un contacto con nombrenombre
en la listacontactos
, agrega allamadas
un string que representa un registro de la misma, usando la plantilla `Llamada a ${nombre} con número ${numero} realizada -
verContactos()
devuelve un string listando todos los contactos, con sus nombres y números -
verHistorial()
devuelve un string con la lista de llamadas realizadas
-
-
Observaciones
-
contacto
es un objeto con las propiedadesnombre
ynumero
- no se puede agregar un contacto si ya existe en el celular alguno con el mismo nombre o número
-
- Propiedades
- monto
- operaciones (array de objetos), inicializa vacío
- Constructor
- toma como argumento
montoInicial
y lo asigna amonto
- toma como argumento
- Métodos
agregarGasto(gasto)
agregagasto
a operacionesagregarGanancia(ganancia)
agregaganancia
a operacionesobtenerGastosPorMes(mes)
devuelve un array con todos los gastos hechos enmes
obtenerGanaciasPorMes(mes)
devuelve un array con todas los ganancias obtenidas enmes
obtenerGastosPorCategoria(categoria)
devuelve un array con todos los gastos de ciertacategoria
obtenerGanaciasPorCategoria(categoria)
devuelve un array con todas las ganancias de ciertacategoria
calcularTotalPorMes(mes)
devuelve el total resultante de restar todos los gastos hechos y sumar todas las ganancias obtenidas en un ciertomes
calcularTotalPorCategoria(categoria)
devuelve el total resultante de restar todos los gastos hechos y sumar todas las ganancias obtenidas en cierta `categoria- **
obtenerMonto()**
devuelvemonto
- Observaciones
- los objetos
gasto
yganancia
contiene las propiedades:descripcion
(string)cantidad
(número)fecha
(Date)categoria
(string)
- cuando se agrega
gasto
oganancia
al array operaciones, hay que agregarle a dicha objeto la propiedadtipo
con el valor"GASTO"
o"GANANCIA"
según corresponda, para poder identificarlos en las siguientes operaciones - cuando se devuelve un array con gastos o ganancias, hay que borrar de los objetos que se devuelven la propiedad
tipo
- los objetos
- Propiedades
- id (string)
- nombre (string)
- precio (número)
- cantidad (número)
- tieneImpuesto (booleano)
- Constructor
- toma como argumentos
nombre
,precio
,cantidad
ytieneImpuesto
y los asigna a sus respectivas propiedades - genera un
id
automático y lo asigna a su propiedad
- toma como argumentos
- Métodos
- getters para obteners los valores de todas las propiedades
- setter para modificar el valor de
cantidad
- Observaciones
- la cantidad nunca puede ser 0
- el precio no puede ser menor a 0
- Propiedades
- productos (array de
Producto
), inicializa vacío
- productos (array de
- Métodos
agregarProducto(producto)
agregaproducto
a `productosactualizarCantidadProducto(id, cantidad)
actualiza lacantidad
del producto enproductos
conid
eliminarProducto(id)
elimina deproductos
el producto conid
calcularTotal()
devuelve el total del carrito (con impuestos incluidos)calcularImpuestoTotal()
devuelve el total de la suma de los impuestos de cada producto quetieneImpuesto
obtenerCantidadTotal()
devuelve la cantidad total de ítems en el productotoString()
devuelve un string con- la lista de productos, detallando nombre, precio por unidad y cantidad
- subtotal de todos los productos sin sumar impuesto
- subtotal de todos los impuestos sumados
- total final (suma de los subtotales)
- Observaciones
- el impuesto es del 10% sobre el precio del producto
- Propiedades
- id (string)
- descripcion (string)
- categoria (string)
- vencimiento (Date)
- finalizada (booleano), inicializa en
false
- Constructor
- toma como argumentos
descripcion
,categoria
,vencimiento
y los asigna a sus propiedades - genera un
id
automático y lo asigna a su propiedad
- toma como argumentos
- Métodos
finalizar()
cambiafinalizada
atrue
- getters para obtener los valores de todas las propiedades
- Propiedades
- tareas (array de
Tarea
), inicializa vacío
- tareas (array de
- Métodos
agregar(tarea)
agregatarea
atareas
eliminar(id)
elimina detareas
la tarea conid
finalizar(id)
finaliza laTarea
conid
obtener(id)
devuelve la tarea conid
obtenerTodas()
devuelve un array con todas las tareasfiltrarActivas()
devuelve un array de tareas que no estén finalizadasfiltrarFinalizadas()
devuelve un array de tareas que estén finalizadasfiltrarPorCategoria(categoria)
devuelve un array de tareas que tengacategoria
filtrarPorVencimiento(fecha)
devuelve un array de tareas que tenga vencimiento enfecha
- Propiedades
- nombre (string)
- nacionalidad (string)
- Constructor
- pide como argumentos
nombre
ynacionalidad
y los asigna a sus respectivas propiedades
- pide como argumentos
- Métodos
- getters para obtener los valores de todas las propiedades
- Propiedades
- id (string)
- titulo (string)
- autor (
Autor
) - precio (número)
- genero (string)
- stock (número)
- Constructor
- genera un
id
automático y lo asigna a su propiedad - el resto de propiedades las pide como argumentos y las asigna según corresponda
- genera un
- Métodos
tieneStock()
devuelvetrue
sistock
es mayor a 0,false
sino- getters para obtener los valores de todas las propiedades, menos
stock
- setter para modificar los valores de
precio
ystock
- Observaciones
stock
yprecio
tienen como valor mínimo 0
- Propiedades
- libros (array de `Libro), inicializa vacío
- ganancias (número), inicializa en 0
- Métodos
agregar(libro)
agregalibro
alibros
eliminar(id)
elimina delibros
el libro conid
buscarPorId(id)
devuelve la información de un libro conid
buscarPorTitulo(titulo)
devuelve la información de un libro contitulo
filtrarPorAutor(autor)
devuelve un array de libros escritos porautor
filtrarPorGenero(genero)
devuelve un array de libros congenero
comprarLibros(idLibros)
toma un array de ids de libros, si tienen stock, reduce el stock de dichos libros en 1 y suma a ganancias el precio de cada libro compradoobtenerGanancias
devuelveganancias
- Propiedades
- id (string)
- nombre (string)
- Constructor
- genera un
id
automático y lo asigna a su propiedad - el resto de propiedades las pide como argumentos y las asigna según corresponda
- genera un
- Métodos
- getters para obtener los valores de todas las propiedades
- Propiedades
- remitente (Usuario)
- destinatario (Usuario)
- texto (string)
- fecha (Date), inicializa con la fecha actual (
new Date()
)
- Constructor
- pide las propiedades no inicializadas como argumentos y las asigna según corresponda
- Métodos
- getters para obtener los valores de todas las propiedades
- Propiedades
- usuario (
Usuario
) - contactos (array de
Usuario
), inicializa vacío - mensajes (array de
Mensaje
), inicializa vacío
- usuario (
- Constructor
- pide
usuario
como argumento y lo agrega a su respectiva propiedad
- pide
- Métodos
agregarContacto(usuario)
agregarusuario
acontactos
obtenerContactos()
devuelve un array con la lista decontactos
obtenerMensaje()
devuelve un array con la lista demensajes
filtrarPorContacto(id)
devuelve un array con la lista demensajes
que tienen comodestinatario
un usuario conid
filtrarPorFecha(fecha)
devuelve un array con la lista demensajes
que tienenfecha
(mismo día, mes y año)mandarMensaje(mensaje)
agregamensaje
amensajes
, sidestinatario
es un usuario de la lista de contactos con y simensaje
no se encuentra ya en el array demensajes
- Observaciones
- solo se pueden mandar mensajes a usuarios de la lista de
contactos
. En caso contrario, arrojar un error.
- solo se pueden mandar mensajes a usuarios de la lista de
- Propiedades
- handle (string)
- siguiendo (array de
Usuario
), inicializa vacío
- Constructor
- pide
handle
como argumento y lo agrega a su respectiva propiedad
- pide
- Métodos
seguir(usuario)
agregausuario
asiguiendo
, si no se encuentra ya en dicho array y si no es el propio usuario (no se puede seguir a sí mismo)- getters para obtener los valores de todas las propiedades
- Propiedades
- id (string)
- handle (
string
) - texto (string)
- likes (array de
Usuario
), inicializa en 0 - retweets (array de `Usuario), inicializa en 0
- Constructor
- genera un
id
automático y lo asigna a su propiedad - pide
handle
ytexto
como argumentos y los agrega a sus respectivas propiedades
- genera un
- Métodos
- getters para obtener los valores de todas las propiedades
darLike(usuario)
agregausuario
alikes
, si ya se encuentra en dicho array, debe removerlo de mismoretweetear(usuario)
agregausuario
aretweets
, si ya se encuentra en dicho array, debe removerlo de mismo
- Propiedades
- tweets (array de
Tweet
), inicializa vacío
- tweets (array de
- Métodos
twittear(tweet)
agregatweet
atweets
, si dichotweet
no se encuentra actualmente en el arrayobtenerTimeline(usuario)
devuelve un array de tweets delusuario
. Este array se compone de- todos los tweets publicados por los usuarios que sigue
- todos los tweets likeados por los usuarios que sigue
- todos los tweets retweeteados por los usuarios que sigue
- no debe haber tweets repetidos
- deben estar ordenados de más nuevos a más viejos
- Observaciones
- Es recomendable crear métodos privados para simplificar
obtenerTimeline
- Es recomendable crear métodos privados para simplificar