Un array en JS es un conjunto de variables a las que accedemos a través de un índice. Si tenemos:
let tabla=[1,2,3,4]
tabla[0]–>1
tabla[1]–>2
tabla[2]–>3
tabla[3]–>4
Podemos recuperar el valor o modificarlo
Para recorrer un array podemos utilizar el bucle for de toda la vida. En los siguientes ejercicios vamos a usar el bucle for aunque no el if
1.- Una función arrayNumeros a la que le pasemos un número y nos devuelva un array desde el 1 hasta ese número. Ej: arrayNumeros(5)–>[1,2,3,4,5]
2.- Una función sumaArray a la que le pasemos un array de números y nos devuelva la suma de todos ellos. Ej: sumaArray([2,5,7])->14 (2+5+7)
3.- Una función arrayTotal a la que le pasamos dos arrays de números y nos devuelve los arrays juntos y ordenados de menor a mayor. Ej: arrayTotal([4,5],[1,2])–>[1,2,4,5] (nota: es más fácil de lo que parece)
En los siguientes sí que utilizamos el if
4.- Una función positivos a la que le pasamos un array de números y nos devuelve sólo los positivos. Ej: positivos([1,-2,5,2,-7])->[1,5,2]
5.- Una función estaOrdenado que nos devuelva true si le pasamos un array ordenado y false en caso contrario. Ojo, no que lo ordene, que nos diga si está ordenado. Ej: estaOrdenado([1,4,7])->true estaOrdenado([1,4,3])->false
function arrayNumeros (numero) { // Inicializo el array a un array vacío y la manera es la siguiente: const res = [] for (let i = 1; i <= numero; i++) { res.push(i) } return res } function sumaArray (array) { let suma = 0 for (let i = 0; i < array.length; i++) { suma += array[i] } return suma } function arrayTotal (array1, array2) { const res = array1.concat(array2) // Equivalente: sort(function(a,b){return a-b}) res.sort((a, b) => a - b) return res } function positivos (array) { const res = [] for (let i = 0; i < array.length; i++) { if (array[i] >= 0) { res.push(array[i]) } } return res } // Primero ordenar y luego un recorrido y con un if miro si son iguales o no // Recorrer el array y si hay dos elementos consecutivos que están desordenados->false y si llego al final // Y no me he encontrado ningún caso está ordenado->true // Tengo dos archivadores: original y la copia // Cada archivador tiene n cajones // ¿Tienen lo mismo? // empiezo en el primer cajón y acabo en el último // Abro el cajón del archivador 1 y abro el cajón del archivador 2 // ¿SOn diferentes?- > COn que haya un cajón que tenga un contenido diferente function estaOrdenado (array) { const copia = array.slice() copia.sort((a, b) => a - b) for (let i = 0; i < array.length; i++) { // Yo en i voy teniendo valores consecutivos: 1,2,3,->posicion // Yo en array[i] voy teniendo el contenido del array // Yo en copia[i] voy teniendo el contenido de copia if (array[i] != copia[i]) { return false } } return true } function estaOrdenado2 (array) { // Empiezo en el 1 porque el 0 no tiene una posición anterior for (let i = 1; i < array.length; i++) { // array=[1,4,2] Si el 2 es menor que el 4 está desordenado if (array[i] < array[i - 1]) { return false } } return true }