-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathcheckpoint.js
151 lines (120 loc) · 4.72 KB
/
checkpoint.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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// Funciones
function menorMayor(numeros) {
// Escribi una función llamada menorMayor que tome como entrada un arreglo de números y devuelva un arreglo
// que contenga el menor número del arreglo en la posición cero y el mayor número del arreglo en la posición 1.
// Ej: menorMayor([4, 6, 1, 7, 15]) // retorna [1, 15]
}
function stringMasLarga(strings) {
// Escribe una función llamada stringMasLarga, que tome un arreglo de strings llamado 'strings'
// tu función debe retornar el string más largo que hay en el arreglo
// Ej:
// stringMasLarga(['hi', 'hello', 'ni hao', 'guten tag']); // returns 'guten tag'
// stringMasLarga(['JavaScript', 'HTML', 'CSS']); // returns 'JavaScript'
}
function buscarAmigo(amigos, nombre) {
// Escribe una funcion que reciba un array de amigos (objetos) y un nombre (string).
// Tu función debe devolver el amigo que coincida con el nombre recibido por argumento.
// Cada amigo tiene las propiedades nombre y edad.
// Ej:
// var amigos = [{ nombre: 'toni', edad: 33 } , { nombre: 'Emi', edad: 25 }];
// buscarAmigo(amigos, 'toni') // retorna { nombre: 'toni', edad: 33 };
}
function sumArray(array, n) {
// Escribir un algoritmo que, dada un arreglo de números ordenados y un número n,
// te devuelva true si alguna combinación de dos números cualesquiera suman n, y devuelva false si ninguna combinación
// de dos números sumados da como resultado el número n.
// Ej:
// sumArray([2,5,7,10,11,15,20], 13) // retorna true 2+11 suman 13
// sumArray([2,5,7,10,11,15,20], 14) // retorna false
// pista: podes usar bucles anidados;
};
function pluck(array, propiedad) {
// Escribi una función llamada pluck,
// que recibe un array de objetos (array) y el nombre de una propiedad (propiedad).
// La función va a devolver un nuevo arreglo con solo los
// valores dentro de la propiedad recibida, por ejemplo:
// var productos = [{ name: 'TV LCD', price: 100}, { name: 'Computadora', price: 500 }]
// productos.pluck(productos, 'name') // ['TV LCD', 'Computadora']
// pista: es una buena oportunidad para usar map.
}
// =======================================================================
function crearClasePersona() {
// Crear una clase para construir objeto de tipo Persona.
// el constructor debe recibir:
// nombre (string) , edad (integer) , hobbies (array de strings) , amigos (array de objetos)
// Esta funcion debe retonar la clase Persona.
class Persona {
constructor(nombre, edad, hobbies, amigos) {
}
addFriend(nombre, edad) {
// el metodo addFriend recibe un string nombre y un entero edad y debe agregar un objeto:
// { nombre: nombre, edad: edad} al arreglo de amigos de la persona.
// no debe retornar nada.
}
addHobby(hobby) {
// este método debe agregar un hobby (hobby) al arreglo de hobbies de la persona.
// no debe retornar nada.
}
getFriends() {
// Escribe una función que retorne un arreglo con sólo los nombres del arreglo de amigos
// de la persona.
// Ej:
// persona.getFriends() // retorna ['toni', 'Leo', 'Manu']
}
getHobbies() {
// Escribe una función que retorne un arreglo con los hobbies de la persona
// Ej:
// persona.getHobbies() // retorna ['correr', 'dormir', 'nadar']
}
getPromedioEdad() {
// Escribe una función que retorne el promedio de edad de los amigos de una persona
// ej, si la persona tuviera estos amigos:
// {
// amigos: [{
// nombre: 'toni',
// edad: 33,
// }, {
// nombre: 'Emi',
// edad: 25
// }]
// }
// persona.getPromedioEdad() // retorna 29
}
};
return Persona;
}
/* ====================== EXTRA CREDIT ===================== */
// Este ejercicio no cuenta en el puntaje del checkpoint
// pero si llegas hasta aca y lo haces quiere decir que venis super bien!
function filtrar(funcion) {
// Escribi una función filtrar en el prototipo de Arrays,
// que recibe una funcion (callback) que devuelve true o false.
// filtrar los elementos de ese arreglo en base al resultado de esa funcion
// comparadora, devolver un nuevo arreglo con los elementos filtrados.
// NO USAR LA FUNCION FILTER DE LOS ARREGLOS.
// ej:
// var productos = [{
// price: 100,
// name: 'tv'
// }, {
// price: 50,
// name: 'phone'
// }, {
// price: 30,
// name: 'lamp'
// }]
// productos.filtrar(function(p) {
// return p.price >= 50;
// }) => [{price: 100, name:'tv'}]
};
// No modifiques nada debajo de esta linea
//
module.exports = {
sumArray,
menorMayor,
stringMasLarga,
buscarAmigo,
pluck,
crearClasePersona,
filtrar
}