forked from P1-Fullstack-Once/JS-basic-III
-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
312 lines (264 loc) · 7.11 KB
/
script.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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
// NÚMEROS
// 1. Suma
function sum(value1, value2) {
console.log(value1 + value2);
}
sum(2, 4);
// 2. Resta
function substraction (value1, value2) {
console.log(value1 - value2);
}
substraction(4, 6);
// 3. Producto
function multiplication (value1, value2) {
console.log(value1 * value2);
}
multiplication(4, 6);
// 4. División
function division (value1, value2) {
console.log(value1 / value2);
}
division(14857, 24);
// 5. Potencia
function exponentiation (base, exponent) {
console.log(base ** exponent);
}
exponentiation(8, 4);
// 6. Resto división
function remainder (value1, value2) {
console.log(value1 % value2);
}
remainder(5, 2);
// 7. Raíz cuadrada
function squareRoot (value) {
console.log(Math.sqrt(value));
}
squareRoot(4)
// 8. Valor absoluto
function absoluteValue (value) {
console.log(Math.abs(value));
}
absoluteValue(-9);
// 9. Redondear decimales
function roundDecimals (value) {
console.log(Math.round(value));
}
roundDecimals(6.598340);
// 10. Número aleatorio
function randomNumber () {
console.log(Math.random(0, 1));
}
randomNumber();
// LETRAS
// 1. Concatenación
function concatText (string1, string2) {
console.log(string1.concat(string2));
}
concatText("Hola, ", "me llamo Deimos.");
// 2. Longitud de texto
function stringLength (string) {
console.log(string.length);
}
stringLength("Hola, me llamo Deimos.");
// 3. Mayúsculas
function uppercaseLetter(string) {
console.log(string.toUpperCase());
}
uppercaseLetter("deimos");
// 4. Minúscula
function lowercaseLetter (string) {
console.log(string.toLowerCase());
}
lowercaseLetter("Deimos");
// 5. Devolver caractre según posición
function returnCharByIndex (string, index) {
console.log(string[index]);
}
returnCharByIndex("Hola, me llamo Deimos.", 15);
// 6. Inversión de texto
function reverseString (string) {
console.log(string.split("").reverse().join(""));
}
reverseString("Deimos");
// 7. Número de veces de un caracter
function numberOfChar (string, char) {
console.log(string.split(char).length - 1);
}
numberOfChar("Phobos y Deimos", "o");
numberOfChar("Phobos y Deimos", "s");
// 8. Sin espacios en blanco
function noBlankSpaces (string) {
console.log(string.split(" ").join(""));
}
noBlankSpaces("Phobos y Deimos");
// 9. To palíndromo or not to
function palindromeOrNot (string) {
let re = /[^A-Za-z0-9]/g;
let lowerString = string.toLowerCase().replace(re, "");
let reverseString = lowerString.split("").reverse().join("");
return reverseString === lowerString;
}
console.log(palindromeOrNot("Anita lava la tina"));
console.log(palindromeOrNot("Hola mundo"));
console.log(palindromeOrNot("Dabale arroz a la zorra el abad"));
// ARRAYS
// 1. Suma de elementos en array
function sumElements (array) {
let sum = 0;
array.forEach( num => {
sum += num;
})
return sum;
}
let array = [8, 17, 3, 49, 95]
console.log(sumElements(array));
// 2. Promedio de elementos en array
function averageElements (array) {
let avg = sumElements(array) / array.length;
return avg;
}
console.log(averageElements(array));
// 3. ELementos ordenados ascendente
function ascOrder (array) {
return array.sort((a, b) => a - b);
}
let numbers = [43, 7, 43794, 918, 3, 93];
console.log(ascOrder(numbers));
// Elementos mayores al número dado
function greaterThan (array, num) {
return array.filter(element => element > num);
}
console.log(greaterThan(numbers, 10));
// 5. Dos arrays en 1
function twoArraysInOne(array1, array2) {
return array1.concat(array2);
}
let desserts = ["tiramisú", "lemon pie", "pannacota"];
let fruits = ["apple", "strawberry", "watermelon"];
console.log(twoArraysInOne(desserts, fruits));
// 6. Elemento mayor de array
function maxElement (array) {
return Math.max(...array);
}
// console.log(...numbers); ... operador de propagación
console.log(maxElement(numbers));
// 7. Elemento menor de array
function minElement (array) {
return Math.min(...array);
}
console.log(minElement(numbers));
// 8. Elemento repetido
function countingOcc (array, elm) {
return array.filter(item => item === elm).length;
}
console.log(fruits);
console.log(countingOcc(fruits, "lemon"));
console.log(countingOcc(fruits, "watermelon"));
// 9. No elementos duplicados
function noDuplication (array) {
return array.filter((value, index) => array.indexOf(value) === index);
}
let bands = ["Linkin Park", "RHCP", "Linkin Park", "Artic Monkeys", "Linkin Park", "RHCP", "System of a Down"];
console.log(noDuplication(bands));
// 10. Elementos orden descendiente
function descOrder (array) {
return array.sort((a, b) => b - a);
}
console.log(descOrder(numbers));
// OBJETOS LITERALES
// 1. Propiedad de obj. lit.
function printProperty (obj, prop) {
return obj[prop];
}
const coder = {
name: "Andrea",
age: 32
}
console.log(printProperty(coder, "name"));
console.log(printProperty(coder, "age"));
// 2. Actaulizar propiedad
function updateProperty (obj, newProp) {
obj.age = newProp;
}
updateProperty(coder, 23);
console.log(coder.age);
// 3. Nueva propiedad
function addProperty (obj, newProp) {
obj[newProp] = null;
}
addProperty(coder, "race");
console.log(coder);
// 4. Borrar propiedad
function deletProperty (obj, prop) {
delete obj[prop];
}
deletProperty(coder, "race");
console.log(coder);
// 5. Propiedades totales
function totalProperties (obj) {
return Object.keys(obj).length;
}
// console.log(Object.keys(coder));
console.log(totalProperties(coder));
// 6. Existe propiedad?
function propertyExists (obj, elm) {
return !!obj[elm];
}
console.log(propertyExists(coder, "age"));
console.log(propertyExists(coder, "race"));
// 7. Valores de las propiedades de un objeto
function showPropertiesValues (obj) {
return Object.values(obj);
}
console.log(showPropertiesValues(coder));
// 8. Mismas propiedades?
function comparingProperties (obj1, obj2) {
return JSON.stringify(obj1) === JSON.stringify(obj2);
// const keys1 = Object.keys(obj1);
// const keys2 = Object.keys(obj2);
// if (keys1.length !== keys2.length) return false;
// return keys1.every(key => obj1[key] === obj2[key]);
// **Ambas opciones bo sirven para objetos más complejos con funciones u objetos anidados. Sirve para objetos pequeños y simples.
}
const cat1 = {
name: "Phobos",
age: 3,
sex: "male"
};
const cat2 = {
name: "Deimos",
age: 3,
sex: "female"
};
console.log(Object.keys(cat1));
console.log(comparingProperties(cat1, cat2));
// 9. Copia de objeto
function copyObject (obj) {
// COPIAS SUPERFICIALES
// Útil para objetos planos
// return Object.assign({}, obj);
// Sintaxi más moderna y legible
return {...obj};
// COPIAS PROFUNDAS
// return JSON.parse(JSON.stringify(obj));
}
const coder1 = copyObject(coder);
console.log(coder1);
// 10. 2 objetos en 1
function twoObjectsInOne (obj1, obj2) {
return Object.assign({}, obj1, obj2);
}
const obj1 = {
type: "fairy",
level: 100,
skills: {
skill1: "absolute joy",
skill2: "death by laugh",
skill3: "angry dust"
}
}
const obj2 = {
type: "troll",
level: 94
}
console.log(twoObjectsInOne(obj1, obj2));