Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Array.prototype.some()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O métodosome() testa se ao menos um dos elementos no array passa no teste implementado pela função atribuída e retorna um valortrue oufalse.
In this article
Experimente
const array = [1, 2, 3, 4, 5];// Checks whether an element is evenconst even = (element) => element % 2 === 0;console.log(array.some(even));// Expected output: trueSintaxe
arr.some(callback[, thisArg])
Parâmetros
callbackFunção para testar cada elemento, recebendo três argumentos:
currentValueO valor atual do elemento sendo processado no array.
indexO índice do elemento atual sendo processado no array.
arrayO array onde o método
some()foi chamado.
thisArgOpcional. Valor para usar como
thisdurante a execução docallback.
Valor de retorno
Esta função retornatrue se a função callback retornartrue para qualquer elemento do array; caso contrário,false.
Descrição
some() executa a função callback uma vez para cada elemento presente no array até achar um onde ocallback retorne um valortrue. Se em qualquer dos elementos o valor for encontrado,some() imediatamente retornatrue. Caso contrario,some() retornafalse.callback é invocado somente para índices do array que contenham valor definido; não é invocado para índices que foram deletados ou os quais nunca tiveram valor definido.
callback é invocado com três argumentos: o valor do elemento, o índice do elemento, e o array onde a função foi chamada.
Se o parâmetrothisArg foi passado aosome(), ele sera passado aocallback quando o mesmo for invocado, para ser usado como o valor dethis internamente na função callback. Caso contrario, o valorundefined será passado para uso comothis. O valorthis observado pelacallback é determinado de acordo com as regras usuais para determinar o que é visto por uma função.
some() não altera o array dentro do qual ele é chamado.
O intervalo de elementos processado porsome() é definido antes da primeira invocação dacallback. Elementos contidos no array antes da chamadasome() ser iniciada não serão testados pelacallback. Se algum elemento pertencente ao array for alterado pelacallback, o valor passado para acallback será o valor do momento em que a funçãosome() encontra o índice daquele elemento. Elementos deletados não são testados.
Exemplos
>Testando valores de elementos de um array
O exemplo a seguir testa se algum elemento de um array é maior que 10.
function isBiggerThan10(element, index, array) { return element > 10;}[2, 5, 8, 1, 4].some(isBiggerThan10); // false[12, 5, 8, 1, 4].some(isBiggerThan10); // trueTestando valores de elementos de um array usando arrow functions
Arrow functions fornece uma sintaxe mais curta para o mesmo teste.
[2, 5, 8, 1, 4].some((elem) => elem > 10); // false[12, 5, 8, 1, 4].some((elem) => elem > 10); // truePolyfill
some() was added to the ECMA-262 standard in the 5th edition; as such it may not be present in all implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use ofsome() in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assumingObject andTypeError have their original values and thatfun.call evaluates to the original value ofFunction.prototype.call().
// Production steps of ECMA-262, Edition 5, 15.4.4.17// Reference: http://es5.github.io/#x15.4.4.17if (!Array.prototype.some) { Array.prototype.some = function (fun /*, thisArg*/) { "use strict"; if (this == null) { throw new TypeError("Array.prototype.some called on null or undefined"); } if (typeof fun !== "function") { throw new TypeError(); } var t = Object(this); var len = t.length >>> 0; var thisArg = arguments.length >= 2 ? arguments[1] : void 0; for (var i = 0; i < len; i++) { if (i in t && fun.call(thisArg, t[i], i, t)) { return true; } } return false; };}Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.some> |