Uso del método `every` en JavaScript para validaciones de arrays
Clase 15 de 28 • Curso de Manipulación de Arrays en JavaScript
Resumen
El método every
es inmutable y consiste retornar un valor lógico verdadero si todos los elementos cumplen con la condición establecida en la función (callback).
Este método recibe dos argumentos:
- La función que itera y evalúa cada elemento del array hasta que al menos uno cumpla con la condición especificada (obligatorio).
- Un objeto al que puede hacer referencia el contexto
this
en la función. Si se lo omite, seráundefined
. Recuerde quethis
en arrow functions es el objeto global.
array.every(function(), thisArg)
La función, que recibe como argumento el método every
, utiliza tres parámetros:
- El valor actual del elemento iterado. Es decir, si es la primera iteración, será el primer elemento, y así sucesivamente.
- El índice del elemento iterado. Es decir, si es la primera iteración, será el índice
0
, y así sucesivamente. - El array que está iterando.
array.every(function(element, index, array))
Diferencia entre la estructura for y el método every
Los métodos de arrays nos permiten realizar algoritmos con una menor cantidad de líneas que una estructura for
, con un resultado igual o parecido.
Por ejemplo, hagamos un algoritmo que indique si en un array, todos los elementos son menores o iguales a 40.
Si utilizamos la estructura for
, necesitaremos una variable de tipo booleana con el valor true
e iterar hasta que una condición contraria al enunciado se cumpla. La palabra reservada break
rompe el ciclo repetitivo.
const numbers = [1, 30, 41, 29, 10, 13]
let respuesta = true
for (let i=0; i < numbers.length; i++){
const element = numbers[i]
if (element >= 40) {
respuesta = false
break
}
}
console.log(respuesta) // false
Con el método every
, solo debemos establecer la función que indique la condición a cumplir para cada elemento.
const numbers = [1, 30, 39, 29, 10, 13]
const respuesta = numbers.every(item => item < 40)
console.log(respuesta) // true
Contribución creada por: Andrés Guano.