-
Notifications
You must be signed in to change notification settings - Fork 705
/
Copy path02-advanced-structures.js
150 lines (93 loc) · 2.56 KB
/
02-advanced-structures.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
/*
Clase 2 - Estructuras avanzadas (05/02/2025)
Vídeo: https://www.twitch.tv/videos/2373300186?t=00h15m32s
*/
// Arrays avanzados
// - Métodos funcionales
// forEach
let numbers = [1, 2, 3, 4, 5, 6]
numbers.forEach(element => console.log(element))
// map
let doubled = numbers.map(element => element * 2)
console.log(doubled)
// filter
let evens = numbers.filter(element => element % 2 === 0)
console.log(evens)
// reduce
let sum = numbers.reduce((result, current) => result + current, 0)
console.log(sum)
// - Manipulación
// flat
let nestedArray = [1, [2, [3, [4]]]]
console.log(nestedArray)
let flatArray = nestedArray.flat(1)
console.log(flatArray)
flatArray = nestedArray.flat(2)
console.log(flatArray)
flatArray = nestedArray.flat(3)
console.log(flatArray)
// flatMap
let phrases = ["Hola mundo", "Adiós mundo"]
let words = phrases.flatMap(phrase => phrase.split(" "))
console.log(words)
// - Ordenación
// sort
let unsorted = ["b", "a", "d", "c"]
let sorted = unsorted.sort()
console.log(sorted)
unsorted = [3, 4, 1, 6, 10]
sorted = unsorted.sort((a, b) => a - b)
console.log(sorted)
// reverse
sorted.reverse()
console.log(sorted)
// - Búsqueda
// includes
console.log(sorted.includes(4))
console.log(sorted.includes(5))
// find
let firstEven = sorted.find(element => element % 2 === 0)
console.log(firstEven)
// findIndex
let firstEvenIndex = sorted.findIndex(element => element % 2 === 0)
console.log(firstEvenIndex)
// Sets avanzados
// - Operaciones
// Eliminación de duplicados
let numbersArray = [1, 2, 2, 3, 4, 5, 6, 6]
numbersArray = [...new Set(numbersArray)]
console.log(numbersArray)
// Unión
const setA = new Set([1, 2, 3])
const setB = new Set([2, 3, 4, 5])
const union = new Set([...setA, ...setB])
console.log(union)
// Intersección
const intersection = new Set([...setA].filter(element => setB.has(element)))
console.log(intersection)
// Diferencia
const difference = new Set([...setA].filter(element => !setB.has(element)))
console.log(difference)
// - Conversión
// Set a Array
console.log([...setA])
// - Iteración
// forEach
setA.forEach(element => console.log(element))
// Maps avanzados
// - Iteración
let myMap = new Map([
["name", "MoureDev"],
["age", 37]
])
myMap.forEach((value, key) => console.log(`${key}: ${value}`))
// - Conversión
// Map a Array
const arrayFromMap = Array.from(myMap)
console.log(arrayFromMap)
// Map a Objeto
const objectFromMap = Object.fromEntries(myMap)
console.log(objectFromMap)
// Objeto a Map
const mapFromObject = new Map(Object.entries(objectFromMap))
console.log(mapFromObject)