Você já se perguntou como verificar rapidamente se um array possui algum item que atende a uma condição? Ou como garantir que todos os elementos de um array são válidos?
No JavaScript, temos duas ferramentas incríveis para isso: some
e every
. Neste guia completo, vamos aprender como utilizá-las de maneira simples, prática e com exemplos que você pode aplicar hoje mesmo!
Sumário
1. O que são some
e every
?
some
: Verifica se pelo menos um elemento do array passa no teste (função de callback).
every
: Verifica se todos os elementos do array passam no teste.
Método | Retorno | Quando retorna true | Quando retorna false |
---|
some | Boolean | Se algum elemento atender à condição | Se nenhum atender |
every | Boolean | Se todos os elementos atenderem | Se algum não atender |
2. Sintaxe
array.some(
callback(element, index, array),
thisArg
);
array.every(
callback(element, index, array),
thisArg
);
- callback: Função que é chamada para cada item.
- element: O elemento atual do array.
- index (opcional): O índice atual.
- array (opcional): O array original.
- thisArg (opcional): Valor para usar como
this
dentro do callback.
3. Exemplos Práticos
const numeros = [1, 2, 3, 4, 5];
// Verificar se existe algum número maior que 3
const algumMaiorQueTres = numeros.some(
(num) => num > 3
);
console.log(algumMaiorQueTres); // true
const numeros = [1, 2, 3, 4, 5];
// Verificar se todos os números são menores que 10
const todosMenoresQueDez = numeros.every(
(num) => num < 10
);
console.log(todosMenoresQueDez); // true
4. Diferença Visual
Array | Condição | some | every |
---|
[1, 2, 3] | > 2 | true | false |
[4, 5, 6] | > 3 | true | true |
[1, 1, 1] | > 2 | false | false |
5. Exemplos Mais Avançados
5.1 Em Arrays de Objetos
const pessoas = [
{ nome: "Ana", idade: 18 },
{ nome: "Bruno", idade: 17 },
{ nome: "Carlos", idade: 21 },
];
// Alguma pessoa é maior de idade?
const algumMaiorDeIdade = pessoas.some(
(p) => p.idade >= 18
);
console.log(algumMaiorDeIdade); // true
// Todos são maiores de idade?
const todosMaioresDeIdade = pessoas.every(
(p) => p.idade >= 18
);
console.log(todosMaioresDeIdade); // false
const campos = ["Allan", "allan@email.com", ""];
// Verificar se existe algum campo vazio
const existeCampoVazio = campos.some(
(campo) => campo.trim() === ""
);
console.log(existeCampoVazio); // true
6. Curiosidades
some
para de iterar assim que encontra o primeiro true.
every
para de iterar assim que encontra o primeiro false.
- Ambos são não mutáveis: não alteram o array original.
- São mais performáticos do que
filter
+ .length > 0
ou loops tradicionais quando só se quer saber o estado.
Resumo Final
Uso | Método | Exemplo |
---|
Se algum elemento satisfaz? | some | array.some(e => e > 10) |
Se todos os elementos satisfazem? | every | array.every(e => e > 0) |