forked from mouredev/hello-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path10-array.js
More file actions
154 lines (114 loc) · 4.22 KB
/
10-array.js
File metadata and controls
154 lines (114 loc) · 4.22 KB
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
// Array
// Declaración
let myArray = []
let myArray2 = new Array()
console.log(myArray) // [] → array vacío
console.log(myArray2) // [] → array vacío
// Inicialización
myArray = [3]
myArray2 = new Array(3)
console.log(myArray) // [3] → array con un valor
console.log(myArray2) // [ <3 empty items> ] → 3 huecos vacíos
myArray = [1, 2, 3, 4]
myArray2 = new Array(1, 2, 3, 4)
console.log(myArray) // [1, 2, 3, 4]
console.log(myArray2) // [1, 2, 3, 4]
myArray = ["Brais", "Moure", "mouredev", 37, true]
myArray2 = new Array("Brais", "Moure", "mouredev", 37, true)
console.log(myArray) // ["Brais", "Moure", "mouredev", 37, true]
console.log(myArray2) // ["Brais", "Moure", "mouredev", 37, true]
// Se llenan los espacios especificando la posición (puede ser intercalado)
myArray2 = new Array(3)
myArray2[2] = "Brais"
// myArray2[0] = "Moure"
myArray2[1] = "mouredev"
myArray2[4] = "mouredev"
console.log(myArray2) // [ <1 empty item>, "mouredev", "Brais", <1 empty item>, "mouredev" ]
myArray = []
myArray[2] = "Brais"
// myArray[0] = "Moure"
myArray[1] = "mouredev"
myArray[5] = "ESPACIO EXTRA" // RESERVA los índices 0,3,4 vacíos
console.log(myArray) // [ <1 empty item>, "mouredev", "Brais", <2 empty items>, "ESPACIO EXTRA" ]
// ------------------- Métodos comunes -------------------
myArray = []
// push y pop
myArray.push("Brais")
myArray.push("Moure")
myArray.push("mouredev")
myArray.push(37)
console.log(myArray) // ["Brais", "Moure", "mouredev", 37]
console.log(myArray.pop()) // 37 → elimina y devuelve el último
myArray.pop() // elimina "mouredev"
console.log(myArray) // ["Brais", "Moure"]
// shift y unshift
// shift elimina el primer elemento y lo devuelve
// unshift agrega uno o más elementos al inicio
console.log(myArray.shift()) // "Brais"
console.log(myArray) // ["Moure"]
myArray.unshift("Brais", "mouredev")
console.log(myArray) // ["Brais", "mouredev", "Moure"]
// length
console.log(myArray.length) // 3 → tamaño del array
// clear
// varias formas
// 1. Inicializarlo vacío
myArray = [] // forma más común
myArray.length = 0 // alternativa (menos clara)
console.log(myArray) // []
// ----- SLICE -----
// slice(inicio, fin) → copia un rango sin modificar el original
let arr = [10, 20, 30, 40, 50];
console.log(arr.slice(1, 3)); // [20, 30]
console.log(arr); // [10, 20, 30, 40, 50] → no cambia
// ----- SPLICE -----
// splice(inicio, cantidad, ...elementos) → modifica el array
let arr2 = [10, 20, 30, 40, 50];
// Eliminar 2 elementos desde índice 1
console.log(arr2.splice(1, 2)); // [20, 30]
console.log(arr2); // [10, 40, 50]
// Insertar elementos en índice 1
arr2.splice(1, 0, 25, 26);
console.log(arr2); // [10, 25, 26, 40, 50]
// fill
/* Rellena todas las posiciones con el mismo valor
Modifica el array original */
let arr1 = new Array(5); // [ <5 empty items> ]
arr1.fill(0); // llena todos con 0
console.log(arr1); // [0, 0, 0, 0, 0]
// map
/* Qué es: Es un método propio de los arrays, no tiene relación con Map.
Uso: Sirve para recorrer un array y devolver un nuevo array transformado. */
/* Recorre cada elemento y devuelve un nuevo array
No modifica el original */
let arr_2 = [1, 2, 3];
let nuevoArr = arr_2.map(function(valor, indice){
return valor * 2; // multiplica cada valor por 2
});
console.log(nuevoArr); // [2, 4, 6]
console.log(arr_2); // [1, 2, 3] → original intacto
// ejemplo fill + map
/* Cuando creas un array con new Array(n) son huecos,
map no los recorre, por eso se suele usar fill primero */
let ejemplo = new Array(5); // [ <5 empty items> ]
ejemplo.fill(0); // [0, 0, 0, 0, 0]
let result = ejemplo.map(function(v,i){
return i + 1; // reemplaza cada valor con índice+1
});
console.log(result); // [1, 2, 3, 4, 5]
/*
let myArray = [3]
let myArray2 = new Array(3)
console.log("myArray:", myArray) // [3]
console.log("myArray2:", myArray2) // [ <3 empty items> ]
// forEach con [3]
console.log("Recorriendo myArray:")
myArray.forEach(function(valor, indice) {
console.log("Índice:", indice, "Valor:", valor)
})
// forEach con new Array(3)
console.log("Recorriendo myArray2:")
myArray2.forEach(function(valor, indice) {
console.log("Índice:", indice, "Valor:", valor)
})
*/