JavaScript tiene métodos nativos para poder aprovechar al máximo las propiedades y bondades de los objetos Array, además de facilitar…y mucho su uso.
Tabla de contenidos
Métodos para buscar información en los Arrays
Con estos métodos podrás buscar cadenas o comprobar una serie de criterios en los objetos Array.
every()
Con este método puedes comprobar si todos los elementos de un Array siguen un criterio determinado.
var edades = [12, 18, 24, 45, 78]; function mayorEdad(edad) { return edad >= 18; } document.write(edades.every(mayorEdad)); // Salida: false
En el anterior ejemplo, se comprueba si todas las edades que contiene el array edades
son mayores de edad.
some()
Este método, al igual que every()
, comprueba que los elementos del Array sigan un criterio determinado, pero en este caso, si sólo uno de ellos pasa la condición, el método devuelve true
.
var edades = [12, 18, 6, 3, 17]; function mayorEdad(edad) { return edad >= 18; } document.write(edades.some(mayorEdad)); // Salida: true (por 18)
En este ejemplo parecido al anterior se puede ver la diferencia.
find()
Con este método puedes buscar un elemento dentro de una Array.
var objetos = ["plato", "vaso", "tenedor", cuchillo, "cuchara", "servilleta"]; var buscar = objetos.find(function(objeto){ return objeto == 'tenedor';}); alert(buscar); // Salida: 'tenedor'
Este método recorre cada uno de los elementos del Array y compara el elemento con la cadena 'tenedor'
, mediante una función anónima. Cuando encuentra una coincidencia la devuelve. Si no hubiera coincidencia devuelve el valor undefined
y si hubiera más de una coincidencia, sólo devuelve la primera de ellas.
findIndex()
Este método realiza una búsqueda en el Array y devuelve el índice del elemento encontrado. Si no se encuentra ninguna coincidencia devuelve el valor -1.
var objetos = ["plato", "vaso", "tenedor", cuchillo, "cuchara", "servilleta"]; var buscar = objetos.findIndex(function(objeto){ return objeto == 'tenedor';}); alert(buscar); // Salida: 2
Como puedes ver, según quieras conseguir el elemento o su posición usaras find()
o findIndex()
filter()
Con este método además de localizar un elemento concreto, crea un
Array con todas las coincidencias.
var edades = [12, 18, 6, 3, 19]; function mayorEdad(edad) { return edad >= 18; } var mayores = edades.filter(mayorEdad)); console.log(mayores); // mayores = [18, 19];
indexOf()
Si lo que quieres es buscar un valor dentro de un Array y que te devuelva su posición, ésta es tu método. Hace una cosa parecida a findIndex()
, pero más sencillo.
var edades = [80, 34, 56, 23]; edades.indexOf(34); // El método devuelve el valor 1
Si no estuviera devuelve -1
lastIndexOf()
Igual que el método indexOf()
, pero la búsqueda empieza por el final, de derecha a izquierda.
var edades = [80, 34, 56, 23]; edades.lastIndexOf(34); // El método devuelve el valor 1
Métodos para crear nuevos Arrays
Array.from()
Con este método podrás convertir el contenido de un Array o String a un objeto Array formal, es decir, a veces los Array y String son simplemente datos primitivos y no son realmente objetos. Con este método asegurarás que sean objetos, con lo que podrás trabajar sin problemas con sus propiedades y métodos.
var cadena = Array.from('Hola'); console.log(cadena); // cadena = ['H', 'o', 'l', 'a'];
Array.of()
Igual que Array.from()
este método convierte a un Array formal el contenido que se le pasa como parámetros.
var colores = Array.of("Rojo", "Amarillo", "Verde"); // colores = ["Rojo", "Amarillo", "Verde"];
map()
Con este método puedes crear un Array nuevo con los valores calculados por una función.
var numeros = [3, 6, 8, 19, 25]; var numerosPorDiez = numeros.map(function(numero){return numero * 10; }); // numerosPorDiez = [30, 60, 80, 190, 250];
En este ejemplo, creo un nuevo Array con los valores de numeros
multiplicado por 10.
slice()
Con este método puedes crear un nuevo Array con un subconjunto de elementos de otro Array.
var numeros = new Array(100, 200, 233, 455, 566, 666, 767); var num1 = numeros.slice(1, 4); // num1 = [200, 233, 455, 566]; var num2 = numeros.slice(-2); // num2 = [666, 767]; var num3 = numeros.slice(4); // num3 = [566, 666, 767];
El primer parámetro indica el inicio del subconjunto. El segundo parámetro indica el final del subconjunto. Si el parámetro es negativo empezará desde el final del Array y según el número serán las elementos, es decir, -2 serán dos elementos desde el final.
Si te ha gustado este artículo y quieres saber más, visita métodos para transformar y ordenar objetos Array en JavaScript
Si te ha gustado o te ha aclarado conceptos el contenido de este artículo compártelo en redes sociales para que pueda crecer, ¡Muchas gracias!
Deja una respuesta